2015-10-13 43 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