GNU/Linux >> Znalost Linux >  >> Linux

Jak odstranit prvních N řádků souboru Ascii pomocí příkazů Shell?

Mám několik souborů, které obsahují textové informace ASCII v prvních 5-10 řádcích, po nichž následují dobře tabulkové maticové informace. V shell skriptu chci odstranit těchto prvních pár řádků textu, abych mohl použít čistou maticovou informaci v jiném programu. Jak k tomu mohu použít příkazy bash shell?

Pokud je to nějaká pomoc, používám RedHat a linuxové systémy Ubuntu.

Přijatá odpověď:

Pokud soubor není symbolický nebo pevný odkaz, můžete použít sed, tail nebo awk. Příklad níže.

$ cat t.txt
12
34
56
78
90

sed

$ sed -e '1,3d' < t.txt
78
90

Můžete také použít sed in-place bez dočasného souboru:sed -i -e 1,3d yourfile . To nebude nic opakovat, pouze to změní soubor na místě. Pokud nepotřebujete předávat výsledek do jiného příkazu, je to jednodušší.

ocas

$ tail -n +4 t.txt
78
90

awk

$ awk 'NR > 3 { print }' < t.txt
78
90

Linux
  1. Jak odstranit první/poslední „n“ řádky z výstupu příkazu v prostředí Shell?

  2. Jak vložit text před první řádek souboru?

  3. Jak odstranit více náhodných řádků z textového souboru pomocí Sed?

  1. Jak odstranit všechny řádky souboru ve Vimu

  2. Jak mohu použít řádky souboru jako argumenty příkazu?

  3. Jak vložit text na začátek souboru?

  1. Vytiskněte soubor s vynecháním prvních X řádků v Bash

  2. Jak načtu zdrojový kód příkazů shellu?

  3. Jak vložím text do 1. řádku souboru pomocí sed?