GNU/Linux >> Znalost Linux >  >> Linux

Jak třídit s oddělovačem, který má několik znaků?

VSTUP:

$ cat a.txt 
1FOO2FOO3
4FOO5FOO5
2FOO1FOO9
$ 

VÝSTUP:

$ cat a.txt | sort SOMEMAGIC
2FOO1FOO9
1FOO2FOO3
4FOO5FOO5
$ 

Otázka :Jak mohu třídit, když mám oddělovač s několika znaky? („FOO“)?

V příkladu a.txt je seřazeny podle druhého sloupce.

Otázka je obecně, čísla v a.txt může být cokoliv.

Přijatá odpověď:

Použijte např. sed chcete-li nahradit řetězec jednoznakovým oddělovačem, seřaďte jej podle sloupce a poté oddělovač znovu nahraďte:

sed -e s/FOO/X/g a.txt | sort -k 2,2 -t X | sed -e s/X/FOO/g 

To předpokládá, že existuje znak, o kterém víte, že se ve vstupu neobjevuje. Řídicí znak by byl běžným kandidátem, ale musíte si vybrat na základě své znalosti vstupního formátu.


Linux
  1. Jak komprimovat soubory a adresáře v systému Linux (s příklady)

  2. Jak najít velké soubory linux pomocí příkazů find a du

  3. Jak spustit příkaz, který zahrnuje přesměrování nebo potrubí pomocí Sudo?

  1. Jak se popasovat s barevným výstupem

  2. Jak sestavit modul jádra Linuxu tak, aby byl kompatibilní se všemi verzemi jádra?

  3. Jak hromadně přejmenovat soubory s neplatným kódováním nebo hromadně nahradit neplatné kódované znaky?

  1. Jak rekurzivně nahradit znaky sed?

  2. Jak přidat zprávu, která se bude číst pomocí dmesg?

  3. Linux mv soubor s dlouhým názvem