2015-10-13 25 views
0

我有这样的(InFile.txt)的文件中:文件拆分成多个文件while循环

TOM1 LE1 1 
TOM1 LE2 1 
TOM1 LE1 2 
TOM3 LE2 2 
TOM1 LE3 3 

输出将被标注的1.txt三个新文件,2.txt3.txt,它们是基于第3列中的值共同从原始文件生成的。

的1.txt

TOM1 LE1 1 
TOM1 LE2 1 

2.txt

TOM1 LE1 2 
TOM3 LE2 2 

3.txt

TOM1 LE3 3 

我一直在努力这样做,因为如下但是我的语法挣扎

awk '{ i = 1; {while (i < 100); if($3 == i) print $1 " " $2 " " $3; InFile.txt > $i.txt} i++}' InFile.txt 

回答

1

您可以使用此awk

awk '{ filename=$3 ".txt"; print $0 >> filename}' yourfile 

说明:

  • $3 ".txt" - 使用$3值化文件名。
  • print $0 >> filename - 将当前行($0)添加到对应的 文件名。
+0

感谢您的解释。更直接地告诉我如何接近它。 – user1308144