GNU/Linux >> Znalost Linux >  >> Linux

Jak převést konkrétní text ze seznamu na velká písmena?

Přeháníte to, využijte svou strukturu souborů, aby to bylo jednoduché!

Pokud najdeme řetězec [United v řádku, velká písmena od závěrečné složené závorky až po konec řádku dává výsledek, po kterém toužíte. Překlad do jazyka Sed,

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

Všimněte si, že výše uvedené je specifické pro GNU Sed. Pokud není k dispozici, ale v systému POSIX, můžete použít Ex (nebo se podívejte na verzi Awk od αғsнιη) s podobnou syntaxí:

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

Chcete-li uložit změny do souboru místo tisku výsledků, změňte %p do x .


Pomocí awk :

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

v rámci [...] definovali jsme oba ] a [ jako oddělovač polí a poté kontrolu proti druhému poli, pokud začíná United text, pokud ano, přidejte zpět [] kolem druhého pole (předpokládám, že neexistuje žádný jiný sloupec, který by tyto znaky naklonil, jinak toto pole bude chybět); pak převedeme třetí sloupec na jeho hodnotu na velká písmena; idiom 1 je spouštěč awk výchozí tisk (druh vždy pravdivé podmínky).


Linux
  1. Jak vykopat soubor z Awk?

  2. Jak rozeznat binární soubory od textových souborů v linuxu

  3. Jak odstraním nové řádky z textového souboru?

  1. Jak rozdělit jeden textový soubor do více souborů *.txt?

  2. Jak převedu obraz disku Linux na řídký soubor?

  3. Jak vyberu veškerý text ze souboru s nano?

  1. Jak zobrazit určité řádky z textového souboru v Linuxu?

  2. Soubory specifické pro Linux (mv nebo cp) z textového seznamu souborů?

  3. Jak převést soubor TAR na soubor ISO