Shell

逐行拆分文件並控制生成的文件副檔名

  • February 11, 2015

文件分割有一個標準的命令——split。

例如,如果我想將一個單詞文件分成幾塊 10000 行,我可以使用:

split -dl 10000 words wrd

它會生成多個 wrd.01、wrd.02 等形式的文件。

但我想為這些文件指定一個特定的副檔名——例如,我想獲取 wtd.01.txt、wrd.02.txt 文件。

有沒有辦法做到這一點?

這在當時是不可用的,但是使用更新的版本 ( ≥ 8.16)gnu split可以使用該--additional-suffix開關來控制生成的擴展。來自man split

--additional-suffix=SUFFIX
             append an additional SUFFIX to file names.

所以在使用該選項時:

split -dl 10000 --additional-suffix=.txt words wrd

生成的片段將自動以.txt

wrd00.txt
wrd01.txt
.........

此類任務最好使用 shell 進行管理。使用 split 然後編寫一個簡單的循環來重命名文件。例如

for file in wrd.*
do
   mv "$file" "$file.txt"
done

將重命名您的 wrd.01、wrd.02 等文件,使它們都具有 .txt 副檔名。

引用自:https://unix.stackexchange.com/questions/32626