是否有一個實用程式可以按換行符號分割檔案?例如,如果檔案包含以下幾行,
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"