- 论坛徽章:
- 0
|
本帖最后由 rdcwayx 于 2012-05-09 11:49 编辑
命令是这样的- awk -v columns_key="${columns_array[*]}" 'BEGIN{nof = split(columns_key,c)};{for (i in c){FS="\t";OFS="\t";if ($6 ~ c[i]){print $1,c[i]}}}' $i > /tmp/keyword.tmp &
复制代码- ${columns_array[*] 是bash声明的数组变量
复制代码 这一步
$6 ~ c
如果当c 是world
那么$6中word-aa 也会被匹配
如果写成$6 ~ /\w c/ 就不能匹配到.
不知道改怎么写这个表达式
解决了
需要提前拼接成regex- aa="\\<"c[i]"\\>";if ($6 ~ aa)
复制代码- awk -v columns_key="${columns_array[*]}" 'BEGIN{nof = split(columns_key,c)};{for (i in c){FS="\t";OFS="\t";aa="\\<"c[i]"\\>";if ($6 ~ aa){print $1,c[i]}}}' $i > /tmp/keyword_$i.tmp &
复制代码 |
|