Rog*_*ach 37 shell filenames split
有一个标准的文件分割命令——split。
例如,如果我想将一个单词文件拆分为 10000 行的几个块,我可以使用:
split -dl 10000 words wrd
Run Code Online (Sandbox Code Playgroud)
它会生成几个格式为 wrd.01、wrd.02 等的文件。
但我想为这些文件指定一个特定的扩展名——例如,我想获得 wtd.01.txt、wrd.02.txt 文件。
有没有办法做到这一点?
don*_*sti 66
这在当时是不可用的,但随着更新版本 ( ? 8.16
) 的出现,gnu split
可以使用--additional-suffix
开关来控制生成的扩展。来自man split
:
--additional-suffix=SUFFIX
append an additional SUFFIX to file names.
Run Code Online (Sandbox Code Playgroud)
所以在使用该选项时:
--additional-suffix=SUFFIX
append an additional SUFFIX to file names.
Run Code Online (Sandbox Code Playgroud)
结果片段将自动以.txt
:
wrd00.txt
wrd01.txt
.........
Run Code Online (Sandbox Code Playgroud)
Kyl*_*nes 16
此类任务最好使用 shell 进行管理。使用 split 然后编写一个简单的循环来重命名文件。例如
for file in wrd.*
do
mv "$file" "$file.txt"
done
Run Code Online (Sandbox Code Playgroud)
将重命名您的 wrd.01、wrd.02 等文件,以便它们都具有 .txt 扩展名。
Kev*_*vin 13
不是 with split
,但您可以在之后轻松重命名它们,或者您可以在awk
:
awk '{filename = "wrd." int((NR-1)/10000) ".txt"; print >> filename}' inputfile
Run Code Online (Sandbox Code Playgroud)