Подтвердить что ты не робот

Команда "sed" в bash

Может кто-нибудь объяснить эту команду для меня:

cat | sed -e 's,%,$,g' | sudo tee /etc/init.d/dropbox << EOF
   echo "Hello World"
EOF

Что делает команда sed?

4b9b3361

Ответ 1

sed является Stream EDitor. Он может сделать целую кучу действительно классных вещей, но наиболее распространенной является замена текста.

Элемент s,%,$,g командной строки - это команда sed для выполнения. s означает замену, символы , являются разделителями (могут использоваться другие символы: /, : и @ являются популярными). % - это шаблон, соответствующий (здесь знак буквенного процента), а $ - это второй образец, который соответствует (вот буквальный знак доллара). g в конце означает, что g будет заменено на каждую строку (в противном случае оно будет обновлять только первое совпадение).

Ответ 2

Здесь sed заменяет все вхождения % на $ в стандартном вводе.

В качестве примера

$ echo 'foo%bar%' | sed -e 's,%,$,g'

создаст "foo $bar $".

Ответ 3

Он читает Hello World (cat), заменяет все (g) вхождения % на $ и (over) записывает его в /etc/init.d/dropbox как root.

Ответ 4

sed - это редактор потоков. Я бы сказал, попробуйте man sed.If вы не нашли, что эта страница человека в вашей системе ссылается на этот URL:

http://unixhelp.ed.ac.uk/CGI/man-cgi?sed