將文件分割成多個小文件,用換行符號分隔

將文件分割成多個小文件,用換行符號分隔

是否有一個實用程式可以按換行符號分割檔案?例如,如果檔案包含以下幾行,

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"

相關內容