是否有一个实用程序可以按换行符分割文件?例如,如果文件包含以下几行,
aa
bbb
cccc
如果我想将其拆分为 3 个文件,所需的输出将是:
aa
,bbb
以及cccc
(在 3 个不同的文件中)
我已经检查过该split
命令,它只按文件大小剪切文件,而不是我想要的。
如果我自己不编写实用程序,是否有任何标准工具可供使用?
答案1
除非我遗漏了一些东西,否则split
如果您使用开关,则会按行分割-l
:
-l, --lines=NUMBER
put NUMBER lines per output file
所以
split -l 1 inputfile
应该做你想做的事。
答案2
awk '{print > $0".txt" }' inputfile
将为输入文件中的每个唯一行创建一个文件,该文件以这些行的内容命名(带有.txt
扩展名)。但要注意,当达到并发打开文件的限制时,某些awk
实现将会失败。
或者
awk '{f = "output_file." NR; print $0 > f; close(f)}' inputfile
对输出文件进行编号。
答案3
A=0
while IFS= read -r LINE ; do
printf '%s\n' "$LINE" > newfile$A
(( A++ ))
done < "$INPUTFILE"