GNU/Linux >> Znalost Linux >  >> Linux

Extrahování sloupců z textového souboru s různými oddělovači v Linuxu

Pokud by příkaz měl fungovat s tabulátory i mezerami jako oddělovačem, použil bych awk :

awk '{print $100,$101,$102,$103,$104,$105}' myfile > outfile

Pokud stačí zadat 5 polí, je v pořádku je napsat, pro delší rozsahy můžete použít for smyčka:

awk '{for(i=100;i<=105;i++)print $i}' myfile > outfile

Pokud chcete použít cut , musíte použít -f možnost:

cut -f100-105 myfile > outfile

Pokud se oddělovač pole liší od TAB musíte jej zadat pomocí -d :

cut -d' ' -f100-105 myfile > outfile

Podívejte se na manuálovou stránku, kde najdete další informace o příkazu cut.


Můžete použít řez s oddělovačem takto:

s mezerou:

cut -d " " -f1-100,1000-1005 infile.csv > outfile.csv

s oddělovačem tabulátoru:

cut -d$'\t' -f1-100,1000-1005 infile.csv > outfile.csv

Dal jsem vám verzi cut, ve které můžete extrahovat seznam intervalů...

Doufám, že to pomůže!


Linux
  1. Oprávnění souborů v Linuxu s příkladem

  2. Jak spustím program s jiným pracovním adresářem, než je aktuální, z prostředí Linux?

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

  1. Odstraňte prvních pět znaků na libovolném řádku textového souboru v Linuxu pomocí sed

  2. Čtení souboru CSV s SQL dotazy z linuxového shellu

  3. Jak extrahovat text pomocí OCR z PDF na Linuxu?

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

  2. Jak se install -c liší od cp

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