GNU/Linux >> Znalost Linux >  >> Linux

Odebrat další řádky záhlaví ze souboru, kromě prvního řádku?

Mám soubor, který vypadá jako tento příklad hračky. Můj skutečný soubor má 4 miliony řádků, z nichž asi 10 potřebuji smazat.

ID  Data1  Data2
1    100    100
2    100    200
3    200    100
ID  Data1  Data2
4    100    100
ID  Data1  Data2
5    200    200

Chci smazat řádky, které vypadají jako záhlaví, kromě prvního řádku.

Konečný soubor:

ID  Data1  Data2
1    100    100
2    100    200
3    200    100
4    100    100
5    200    200

Jak to mohu udělat?

Přijatá odpověď:

header=$(head -n 1 input)
(printf "%sn" "$header";
 grep -vFxe "$header" input
) > output
  1. uchopte řádek záhlaví ze vstupního souboru do proměnné
  2. vytisknout záhlaví
  3. zpracujte soubor pomocí grep vynechat řádky, které odpovídají záhlaví
  4. zachyťte výstup z výše uvedených dvou kroků do výstupního souboru

Linux
  1. Používání Disku Google z příkazového řádku systému Linux

  2. Jak procházet řádky souboru?

  3. Bash skript k odstranění nejstaršího souboru ze složky?

  1. Efektivně odstranit prvních pár řádků z textového souboru?

  2. Ponechat pouze první řádek z každé sekvence po sobě jdoucích řádků, které odpovídají vzoru?

  3. Jak odstranit Bom ze souboru UTF-8?

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

  2. Jak odstranit řádky, které se objevují v souboru B, z jiného souboru A?

  3. Odstraňte určitý řádek ze souboru historie Bash