我有一个很大的列表 - 包含 1 列数字的文本文件(长度=14)。号码有 4 个不同的前缀 00001-00004。我如何将 1 个列表拆分为 4 个 diffrend 文件。 1 个文件应包含具有一个前缀的号码列表。
答案1
使用该awk
命令:
awk '/^00001/{print >"file1"} \
/^00002/{print >"file2"} \
/^00003/{print >"file3"} \
/^00004/{print >"file4"}' inputfile
它检查该行具有哪个前缀并将整行打印到file1
to file4
。inputfile
是具有大列表的文件。
答案2
使用 (G)awk 和 match
awk 'match($0,/^0000([1-4])/,a){print > "file"a[1]}' file
POSIX awk
awk '/0000[1-4]/{print > "file"substr($0,5,1)}' file
或者如果它们都有前缀
awk '{print > "file"substr($0,5,1)}' file
答案3
您可以免费使用bash
while IFS= read -r num
do
echo "$num" >> "file${num:4:1}"
done < number_list.file