Split
拆分:如何拆分成不同的百分比?
如何使用 split 命令將文本文件拆分為 70% 和 30%?
以下命令適用於 50% 以上的百分比(如果您只想拆分為兩個文件),快速而骯髒的方法。
- 根據行拆分 70%
split -l $[ $(wc -l filename|cut -d" " -f1) * 70 / 100 ] filename
- 根據字節拆分 70%
split -b $[ $(wc -c filename|cut -d" " -f1) * 70 / 100 ] filename
您可以使用
csplit
分成兩部分(使用任何百分比),例如第一部分 - 前 20% 的行,第二部分 - 其餘 80% 的行:csplit infile $(( $(wc -l < infile) * 2 / 10 + 1))
$(wc -l < infile)
:總行數
2 / 10
:百分比
+1
:添加一行,因為csplit
拆分up to but not including line N
但是,您只能根據行進行拆分。
基本上,只要您有行號,
$(( $(wc -l < file) * 2 / 10))
您就可以使用任何面向行的工具:sed 1,$(( $(wc -l < infile) * 2 / 10))'{ w 20-infile d }' infile > 80-infile
或者,更酷:
{ head -n$(( $(wc -l < infile) * 2 / 10)) > 20-infile; cat > 80-infile; } <infile
雖然有些
head
s 很愚蠢並且不符合標準,所以這不適用於所有設置……