改行記号でファイルを分割するユーティリティはありますか?たとえば、ファイルに次の行が含まれている場合、
aa
bbb
cccc
3つのファイルに分割する場合、必要な出力は次のようになります。
aa
、bbb
およびcccc
(3つの異なるファイル)
私はすでにsplit
コマンドを確認しましたが、ファイルサイズでファイルをカットするだけで、必要なサイズではありません。
自分でユーティリティを作成しなかった場合、使用できる標準的なツールはありますか?
私が何かを欠落していない限り、split
は-l
スイッチ:
-l, --lines=NUMBER
put NUMBER lines per output file
そう
split -l 1 inputfile
あなたがしたいことをすべきです。
awk '{print > $0".txt" }' inputfile
これらの行の内容に基づいて名前が付けられたinputfileの一意の行ごとに1つのファイルを作成します(.txt
拡張子)。ただし、同時に開くことができるファイルの制限に達すると、一部のawk
実装が失敗することに注意してください。
または
awk '{f = "output_file." NR; print $0 > f; close(f)}' inputfile
番号付きの出力ファイルを持っています。
A=0
while IFS= read -r LINE ; do
printf '%s\n' "$LINE" > newfile$A
(( A++ ))
done < "$INPUTFILE"