GNU/Linux >> Znalost Linux >  >> Linux

Pomocí AWK vyberte řádky s konkrétní hodnotou v konkrétním sloupci

Soubor, na kterém spustíte skript, má konce řádků DOS. Je možné, že byl vytvořen na počítači se systémem Windows.

Použijte dos2unix převést jej na textový soubor Unix.

Případně jej spusťte přes tr :

tr -d '\r' <input.txt >input-unix.txt

Poté použijte input-unix.txt s jinak správným awk kód.

Chcete-li upravit awk kód místo vstupního souboru:

awk -F, '$7 == "-99\r"' input.txt >output.txt

To bere v úvahu návrat vozíku na konci řádku.

Nebo,

awk -F, '$7 + 0 == -99' input.txt >output.txt

To vynutí interpretaci 7. sloupce jako čísla, které „odstraní“ návrat vozíku.

Podobně

awk -F, 'int($7) == -99' input.txt >output.txt

by také odstranil \r .


awk -F, '{if($7==-99)print $0}'

udělá to...


Linux
  1. Cat soubory s adresářem?

  2. Odeberte konkrétní znak pomocí awk nebo sed

  3. Použití grep vs awk

  1. Používáte Notify-Send s Cronem?

  2. Výměna řetězce pomocí slovníku?

  3. Pomocí awk sečte hodnoty sloupce na základě hodnot jiného sloupce

  1. Používáte zalamování slov s Mc?

  2. Procentuální hodnota s GNU Diff

  3. Použití barev s printf