使用awk拆分文件

时间:2014-01-13 14:26:01

标签: awk split

我尝试根据第一列拆分文件,并使用其中一个线程中的命令写入单独的txt文件,并显示以下错误:

awk '{print > $1".txt"}' TS129.txt 
awk: syntax error at source line 1
context is
{print > >>>  $1".txt" <<< 
awk: illegal statement at source line 1

这看起来很简单,但它并没有引起我的注意。有人可以帮忙解决这个问题吗?

1 个答案:

答案 0 :(得分:4)

尝试:

awk '{ print > ($1 ".txt") }' TS129.txt 

更新:

awk '{
  close(fn)
  fn = $1 ".txt"
  print >> fn
  }' TS129.txt 

如果您希望避免为每一行打电话:

awk '{
  seen[$1]++ || count++
  if (count >= limit) {
    for (fname in seen)
      close(fname ".txt")
    c = ""
    split("", seen)
    }
  print >> ($1 ".txt")
  }' limit=<number_of_open_files> TS129.txt