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

各ファイルにヘッダーを含む行数でファイルを分割しますか?

.txtを分割する必要があります ヘッダーを含め、それぞれ100行を含む小さなファイルにファイルします。これが適切かどうかはわかりませんが、元のファイルは次のように区切られています:

COLUMN1 | COLUMN2 | COLUMN3
1 | 2 | 3
4 | 5 | 6
7 | 8 | 9

この分割から生成されたすべてのファイルにヘッダー行が必要です。また、それらは別のディレクトリで生成/移動され、file_01.txtのような名前パターンに従う必要があります。 、file_02.txt 、など

承認された回答:

gnu splitを使用 ヘッダーを変数に保存してからsplitすることができます 2行目から開始し、--filterを使用します 最初にヘッダーを書き込み、次に各ピースに99行を書き込み、出力ディレクトリも指定するオプション(例:path to/output dir/ ):

header=$(head -n 1 infile.txt)
export header
tail -n +2 infile.txt | split -l 99 -d --additional-suffix=.txt 
--filter='{ printf %s\n "$header"; cat; } >path to/output dir/$FILE' - file_

これにより、100行のピースが作成されます

path to/output dir/file_01.txt
path to/output dir/file_02.txt
path to/output dir/file_03.txt
..............................

Linux
  1. 2つのパターンの間(およびそれを含む)の線を印刷しますか?

  2. 1つのファイルを除くすべてのファイル/ディレクトリを削除しますか?

  3. 各50行から15行目と25行目を印刷する方法は?

  1. ファイルに複数の行を追加するにはどうすればよいですか?

  2. データファイルからランダムに特定の数の線を描画しますか?

  3. Linuxコマンドラインでファイルの特定の行を表示する方法

  1. その中にディレクトリとファイルを作成するための1つのコマンドlinuxコマンド

  2. 1 つのテキスト ファイルを複数の *.txt ファイルに分割する方法は?

  3. データファイルから特定の数の行をランダムに描画します