Sto cercando di creare un comando sed che capitalizza il pronome I in un file di testo. Ad esempio "mi piacciono i cani". dovrebbe essere "Mi piacciono i cani". Finora ho:
sed 's/ i / I /g'
Questo non funziona in diversi scenari. Come se ci fosse la punteggiatura attorno all'i .
Ecco un elenco di scenari a cui ho pensato che il comando dovrebbe essere in grado di gestire:
- Esistono più " i " su una riga di testo. Penso che questo possa essere risolto solo avendo la
g
bandiera alla fine. - L'' i 'ha punteggiatura attorno ad esso. Ad esempio una virgola o un punto dopo di essa, oppure una citazione o una parentesi prima o dopo di essa.
- La ' i ' è il primo o l'ultimo carattere della linea. Ciò significa che non puoi semplicemente controllare spazi bianchi o punteggiatura intorno.
- Qualsiasi " io " in una parola viene lasciato solo. Per esempio "f i ref i ghter" non dovrebbe essere trasformata in "f I ref I ghter".
i i
caso consiste nell'applicare la trasformazione due volte. Ciò può essere ottenuto da un comando:sed -e 's…' -e 's…'
.