我希望在这种情况下捕获第4列,它可以是不同的字符串,并且在该字符串的基础上将整行放入文件中,并且如果某些字符串重复到同一文件也要放置。我要创建的文件的名称是第4列的名称。
1 OI 021 141012 1321 0001242
1 OI 021 141013 1322 0001242
1 OI 021 141013 1323 0001242
1 OI 021 141012 1322 0001242
1 OI 021 141011 1321 0001242
很难做出的期望是这样的:
文件名141011
包含:
1 OI 021 141011 1321 0001242
文件名141012
包含:
1 OI 021 141012 1321 0001242
1 OI 021 141012 1322 0001242
文件名141013
包含:
1 OI 021 141013 1322 0001242
1 OI 021 141013 1323 0001242
答案 0 :(得分:4)
只需将print
重定向到第4个字段,该字段将被视为文件名:
awk '{print > $4}' file
如果这些14101*
文件已经存在并且您想要追加数据而不是截断数据,请使用>>
:
awk '{print >> $4}' file
$ awk '{print > $4}' file
$ tail 14101*
==> 141011 <==
1 OI 021 141011 1321 0001242
==> 141012 <==
1 OI 021 141012 1321 0001242
1 OI 021 141012 1322 0001242
==> 141013 <==
1 OI 021 141013 1322 0001242
1 OI 021 141013 1323 0001242