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

xpt
źródło
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.

Ściśnij
źródło
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"
terdon
źródło
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'

potong
źródło