Próbuję utworzyć polecenie sed, które kapitalizuje zaimek I w pliku tekstowym. Na przykład „lubię psy”. powinno być „Lubię psy”. Do tej pory mam:
sed 's/ i / I /g'
To nie działa w wielu różnych scenariuszach. Jak gdyby nie ma znaków interpunkcyjnych po I .
Oto lista scenariuszy, o których pomyślałem, że polecenie powinno być w stanie obsłużyć:
- W jednym wierszu tekstu znajduje się wiele „ i ”. Myślę, że można temu zaradzić, mając
g
flagę na końcu. - „ I ” ma wokół siebie znaki interpunkcyjne. Na przykład przecinek lub kropka po nim, cytat lub nawias przed nim lub po nim.
- „ I ” to pierwszy lub ostatni znak w linii. Oznacza to, że nie można po prostu sprawdzić odstępów lub interpunkcji.
- Każde zwykłe „ ja ” w słowie jest pozostawione w spokoju. Na przykład „f I Opłaty i ghter” nie powinien być przekształcony „f I Opłaty ja ghter”.
i i
przypadku jest dwukrotne zastosowanie transformacji. Można to osiągnąć przez jednego polecenia:sed -e 's…' -e 's…'
.