【发布时间】:2017-09-04 02:43:45
【问题描述】:
这是我的脚本中使用 awk 的部分。
ids=`cut -d ',' -f1 $file | sed ':a;N;$!ba;s/\n/,/g'`
awk -vdata="$ids" -F',' 'NR > 1 {if(index(data,$2)>0){print $0",true"}else{print $0",false"}}' $input_file >> $output_file
这很好用,但是当我尝试将数据获取到两个或更多这样的文件时。
ids=`cut -d ',' -f1 $file1 $file2 $file3 | sed ':a;N;$!ba;s/\n/,/g'`
它返回了这个错误。
/usr/bin/awk: Argument list too long
据我研究,这不是文件数量造成的,而是获取的 ids 数量造成的。
有人知道如何解决这个问题吗?谢谢。
【问题讨论】:
-
你总是可以在
awk中执行cut和sed,只需编写一个#!/bin/awk脚本。 -
你能举个例子说明你的输入数据和你的预期输出吗?我怀疑根本不需要
cut和sed。只需一个awk程序就足够了。