sed regexp dopasowanie adresu bez rozróżniania wielkości liter


2

Jak określić sedadres wyrażenia regularnego, który nie rozróżnia wielkości liter?

Na przykład,

sed '/my-kw/d'

Ale w każdym razie chcę sedusunąć linie my-kw.

Dzięki


Czy to pytanie należy przenieść do społeczności StackExchange w systemach Unix i Linux?
r_alex_hall

Odpowiedzi:


2
sed '/my-kw/Id'

Spowoduje to wykonanie dopasowania bez rozróżniania wielkości liter.

Przełącznik jest pisany dużymi literami, aby uniknąć pomyłki z ipoleceniem oferowanym przez sedwstawienie linii do strumienia.


Perfekcyjnie, dzięki. Hmm, mam nadzieję, że mój następujący wieloliniowy komentarz może przejść przez $ jot -c 5 'A' | tee / dev / tty | sed '/ c / Id' ABCDEABDE
xpt

Nie, mój poprzedni, wieloliniowy komentarz nie przeszedł ładnego formatowania, ale widać, że Czostał usunięty z listy. Możesz uruchomić próbkę samodzielnie jot -c 5 'A' | tee /dev/tty | sed '/c/Id', gdzie jot pochodzi z pakietu athena-jot w Debian / Ubuntu.
xpt

1
Zauważ, że jestem rozszerzeniem GNU sed.
Alastair Irvine,

3
To nie jest przenośne. Zobacz: stackoverflow.com/questions/4412945/…
r_alex_hall

3

Wystarczy użyć Iprzełącznika:

$ echo fooFOO | sed 's/o/a/Id'
faaFaa

Z sedFAQ :

GNU sed 3.02 i ssed oferują również przełącznik / I do wykonywania rozróżniania wielkości liter. Na przykład,

echo ONE TWO | sed "s/one/unos/I"      # prints "unos TWO"

a ci, którzy głosowali za odpowiedzią, moje pytanie dotyczy adresu sed . Zobacz mój komentarz do innego wątku.
xpt

1

To może Ci pomóc:

plik sed ”/ [mM] [yY] - [kK] [wW] / d” lub:

plik sed 'h; y / abcdefghijklmnopqrstuvwxyz / ABCDEFGHIJKLMNOPQRSTUVWXYZ /; / MY-KW / d; x'

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.