与田野的尴尬

  • 本文关键字:田野 regex bash awk
  • 更新时间 :
  • 英文 :


我正在尝试根据另一个文件提取数据。File1的子字符串用作索引,以查找File2中的匹配项。当要搜索的字符串inf file2位于空间之间或隔离之间时,所有功能都可以,但是当加入到其他字段时,awk找不到它。有没有办法使尴尬匹配file2中的任何部分?

awk -vv1="$Var1" -vv2="$var2" '
    NR==FNR {
        if ($4==v1 && $5==v2) {
            s=substr($0,4,8)
        echo $s 
            a[s]++
        }
        next
    }
    !($1 in a) {
        print
    }' /tmp/file1 /tmp/file2

有效的示例:file1:

1  554545352014-01-21      2014-01-21T16:18:01     FS  14001 1         1.10
1  554545362014-01-21      2014-01-21T16:18:08     FS  14002 1         5.50

file2:

55454535   11       17   102  850Sande Fiambre   1.000
55454536   11       17    17  238Pesc. Dourada   1.000

不起作用的示例:

file2:

 5545453501/21/20142       1716:18 1   1     116:18
 5545453601/21/20142       1716:18 1   1     216:18

例如:55454535在工作示例中找到匹配的字符串,但没有在底部。

您可能要替换此:

!($1 in a) {
    print
}

这样(或类似的 - 您的要求尚不清楚):

{
    found = 0
    for (s in a) {
        if ($1 ~ "^"s) {
            found = 1
        }
    }
    if (!found) {
        print
    }
}

使用REGEX比较〜而不是==

ex。如果($ 4〜V1&& $ 5〜V2)

如果您想单词仅以字符串开头,如果您想word word word with with with

相关内容

  • 没有找到相关文章

最新更新