- 論壇徽章:
- 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 &
復(fù)制代碼- ${columns_array[*] 是bash聲明的數(shù)組變量
復(fù)制代碼 這一步
$6 ~ c
如果當(dāng)c 是world
那么$6中word-aa 也會被匹配
如果寫成$6 ~ /\w c/ 就不能匹配到.
不知道改怎么寫這個表達式
解決了
需要提前拼接成regex- aa="\\<"c[i]"\\>";if ($6 ~ aa)
復(fù)制代碼- 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 &
復(fù)制代碼 |
|