GNU/Linux >> Linux の 問題 >  >> Linux

最初の行を除いて、ファイルから余分なヘッダー行を削除しますか?

このおもちゃの例のようなファイルがあります。私の実際のファイルには400万行あり、そのうち約10行を削除する必要があります。

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

最初の行を除いて、ヘッダーのように見える行を削除したい。

最終ファイル:

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

どうすればこれを行うことができますか?

承認された回答:

header=$(head -n 1 input)
(printf "%sn" "$header";
 grep -vFxe "$header" input
) > output
  1. 入力ファイルから変数にヘッダー行を取得します
  2. ヘッダーを印刷する
  3. grepでファイルを処理します ヘッダーに一致する行を省略します
  4. 上記の2つのステップからの出力を出力ファイルにキャプチャします

Linux
  1. LinuxコマンドラインからのGoogleドライブの使用

  2. ファイルの行をループする方法は?

  3. 次の行の最初の文字に基づいて行を連結しますか?

  1. フォルダから最も古いファイルを削除するためのBashスクリプト?

  2. パターンに一致する連続する行のすべてのシーケンスの最初の行だけを保持しますか?

  3. Utf-8ファイルからBOMを削除する方法は?

  1. CLI から、ファイルの最後の行を出力します。

  2. ファイル B に表示される行を別のファイル A から削除するには?

  3. アクティブなログ ファイルから最初の N 行を削除する