Może ktoś wyjaśnić tej komendy dla mnie:"sed" polecenia w bash
cat | sed -e 's,%,$,g' | sudo tee /etc/init.d/dropbox << EOF
echo "Hello World"
EOF
czego służy komenda "sed" zrobić?
Może ktoś wyjaśnić tej komendy dla mnie:"sed" polecenia w bash
cat | sed -e 's,%,$,g' | sudo tee /etc/init.d/dropbox << EOF
echo "Hello World"
EOF
czego służy komenda "sed" zrobić?
sed
jest Stream EDitor. Może wykonać cały stos really cool things, ale najczęściej zastępuje tekst.
Częścią wiersza poleceń jest s,%,$,g
, aby wykonać polecenie. s
oznacza zastępczy, znaki ,
są ogranicznikami (można używać innych znaków; popularne są /
, :
i @
). %
to wzór do dopasowania (tutaj znak procentowy) i $
to drugi wzorzec do dopasowania (tutaj dosłowny znak dolara). Wartość g
na końcu oznacza g
wymienianie lewostronne w każdej linii (w przeciwnym wypadku zaktualizowałoby tylko pierwsze dopasowanie).
Z jakiegoś powodu sed zastępuje dla mnie wszystkie linie, a nie tylko pierwsze, gdy opuszczam "g" na końcu. na przykład 'sudo sed -i's, enabled = 0, enabled = 1, '/ etc/yum.repos.d/epel.repo' w amazońskim obrazie AWS z wersją sed 4.2.1 – Programster
sed zawsze będzie działał w każdym wierszu. Opcja 'g' powoduje, że zastępuje każdy mecz w tej linii zamiast pierwszego dopasowania w tej linii. –
Odczytuje Hello World
(cat
), zastępuje wszystkie (g
) wystąpienia %
przez $
i (nad) zapisuje je do /etc/init.d/dropbox
jako root.
Tutaj sed
zastępuje wszystkie wystąpienia %
z $
na standardowym wejściu.
Jako przykład
$ echo 'foo%bar%' | sed -e 's,%,$,g'
będzie produkować "foo $ bar $".
sed jest edytorem strumieni. Powiedziałbym spróbować człowiek sed.If nie znalazłeś tę stronę man w systemie odnoszą ten URL:
+1 dla strony podręcznika. –
sed jest skrótem od "edytora strumieni" - edytuje strumienie bajtów/znaków. –
Mogliście poprosić o to jako komentarz do mojej odpowiedzi, byłbym zadowolony z jego rozszerzenia. – Benoit