GNU/Linux >> Linux Esercitazione >  >> Linux

Come convertire un testo specifico da un elenco in maiuscolo?

Stai esagerando, approfitta della struttura dei tuoi file per mantenerlo semplice!

Se troviamo la stringa [United in una riga, mettendo in maiuscolo tutto, dalla parentesi graffa di chiusura alla fine della riga, si ottiene il risultato desiderato. Traducendolo in lingua Sed,

sed '/\[United/s/].*/\U&/' file

Si noti che quanto sopra è specifico di GNU Sed. Se non disponibile ma in un sistema POSIX, puoi usare Ex (o vedere la versione Awk di αғsнιη) con una sintassi simile:

printf '%s\n' 'g/\[United/s/].*/\U&/' '%p' | ex file

Per salvare le modifiche al file invece di stampare i risultati, modifica %p a x .


Usando awk :

awk -F"[][]" '$2 ~/^United/ { $2="["$2"]"; $3=toupper($3); }1' OFS='' infile

entro [...] abbiamo definito entrambi ] e [ come separatore di campo quindi controllando il secondo campo se inizia con United text, se sì allora aggiungi di nuovo [] intorno al secondo archiviato (presumo che non ci siano altre colonne che inclinino questi caratteri, altrimenti quei campi mancheranno questo); quindi convertiamo la terza colonna nel suo valore maiuscolo; l'idioma 1 è il trigger awk default print (una specie di condizione sempre vera).


Linux
  1. Come posso trovare un file specifico da un terminale Linux?

  2. Come dividere un file di testo in più file *.txt?

  3. Come convertire un file di testo da Shift JIS a UTF-8 e viceversa dal terminale

  4. Come visualizzare determinate righe da un file di testo in Linux?

  5. File specifici di Linux (mv o cp) da un elenco di file di testo?

Come visualizzare i dati da un file di testo in Linux

Scripting Bash:come leggere i dati dai file di testo

Come estrarre indirizzi e-mail da file di testo in Linux

Come trovare file contenenti una stringa di testo specifica in Linux

Come rimuovere tutti i caratteri di spazio bianco da un file di testo

Come fare eco in un file