1

Что означает -. * $/ В этой команде? Пожалуйста, помогите мне расшифровать это.

echo -n full | sed -e "s/-.*$//" 

Я знаю, что делает sed и все такое, я просто хочу знать, что это такое. * $ Part.

4 ответа4

9

. обозначает любой символ, * означает совпадение с любым количеством (от 0 до бесконечности) предыдущего совпадения, а $ обозначает конец строки. Таким образом, эта команда sed будет соответствовать - за ней будут следовать все символы до тех пор, пока она не найдет конец строки и не заменит ее ничем, т.е. удалит ее.

Так, например: aajaaa-woijsdfljkwe94 становится aajaaa

Также следует отметить, что * является «жадным», что означает, что он будет соответствовать как можно большему числу символов. Так, например: alasdf-slwddo-sdf становится alasdf , а не alasdf-slwddo .

1

По сути, эта команда удаляет все от первой черты ('-') до конца ввода.

0

$ - это конец строки регулярного выражения, поэтому он читает строку с символом -, за которым следует что-либо в строке.

0
  • . это любой персонаж.
  • * это "ноль или более раз"

Таким образом,. .* - это «любой символ, ноль или более раз»

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .