Что означает -. * $/ В этой команде? Пожалуйста, помогите мне расшифровать это.
echo -n full | sed -e "s/-.*$//" 
Я знаю, что делает sed и все такое, я просто хочу знать, что это такое. * $ Part.
. обозначает любой символ, * означает совпадение с любым количеством (от 0 до бесконечности) предыдущего совпадения, а $ обозначает конец строки. Таким образом, эта команда sed будет соответствовать - за ней будут следовать все символы до тех пор, пока она не найдет конец строки и не заменит ее ничем, т.е. удалит ее.
Так, например: aajaaa-woijsdfljkwe94 становится aajaaa
Также следует отметить, что * является «жадным», что означает, что он будет соответствовать как можно большему числу символов. Так, например: alasdf-slwddo-sdf становится alasdf , а не alasdf-slwddo .
По сути, эта команда удаляет все от первой черты ('-') до конца ввода.
$ - это конец строки регулярного выражения, поэтому он читает строку с символом -, за которым следует что-либо в строке.
. это любой персонаж.* это "ноль или более раз"Таким образом,. .* - это «любой символ, ноль или более раз»