在while循环中将文件拆分为多个文件

时间:2015-10-13 09:48:37

标签: awk while-loop

我有这样的文件(InFile.txt):

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

输出将是三个标记为 1.txt 2.txt 3.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 个答案:

答案 0 :(得分:1)

您可以使用此awk

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

<强>解释

  • $3 ".txt" - 使用$3值形成文件名。
  • print $0 >> filename - 将当前行($0)附加到相应的行 文件名。