有一个用于文件分割的标准命令 - split
.
例如,如果我想将一个words
文件分成 10000 行的几个块,我可以使用:
split -dl 10000 words wrd
它将生成几个格式为 的文件wrd.01
,wrd.02
依此类推。
但我想要这些文件有一个特定的扩展名 - 例如,我想要获取wtd.01.txt
, wrd.02.txt
files.
有办法做到吗?
答案1
与gnu split
更多最近的版本 ( ≥ 8.16
),可以使用--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
.........
答案2
此类任务最好使用 shell 进行管理。使用 split,然后编写一个简单的循环来重命名文件。例如
for file in wrd.*
do
mv "$file" "$file.txt"
done
会重命名您的wrd.01、wrd.02等文件,以便它们都有.txt扩展名。
答案3
不是使用split
,但您可以在之后轻松地重命名它们,或者您可以在 中执行此操作awk
:
awk '{filename = "wrd." int((NR-1)/10000) ".txt"; print >> filename}' inputfile