Można zrobić to w ten sposób:
sed -e 's/^avpgw/new text/' -e t -e 's/^av/new text/' -e t -e 's/^/new text/' file
Zastępuje to wzór z new text
(s ///) i skacze do końca (t). W przeciwnym razie próbuje następnego wzoru. Zobacz także sed commands summary.
Można również oddzielić poleceń z ;
:
sed 's/^avpgw/new text/; t; s/^av/new text/; t; s/^/new text/' file
lub umieścić polecenia w sed pliku polecenia:
s/^avpgw/new text/
t
s/^av/new text/
t
s/^/new text/
i nazywają to w ten sposób:
sed -f commandfile file
Jeśli chcesz zignorować wielkość liter, dołącz element i na końcu polecenia zastępczego, tak jak w s/^av/new text/i
. Innym sposobem jest przeliterowanie za pomocą zestawów znaków s/^[aA][vV]/new text/
. Ale to nie jest specyficzne, ponieważ można wyszukiwać wyrażenia regularne w ogóle.
Dzięki za odpowiedź. Wszystko działało idealnie. Czy istnieje sposób na uczynienie go niewrażliwym na wielkość liter. Mam na myśli Av, AV, av itd. Wszystkie powinny zostać zastąpione. – user1765709
@ user1765709 Możesz użyć zestawów znaków lub dodać modyfikator. Zobacz moją zmodyfikowaną odpowiedź. –
Jestem na centach i to nie działa. Jakiś pomysł, dlaczego? – Dobler