使用 awk 制作 4 out 1 文件

使用 awk 制作 4 out 1 文件

我有一个很大的列表 - 包含 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

它检查该行具有哪个前缀并将整行打印到file1to file4inputfile是具有大列表的文件。

答案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

相关内容