AWK - 如何从多个文件中提取匹配项,包括文件名的一部分

奥特曼

我有 1000 个文件名如下:

total_val_count.html?itemid=5555

有内容

total.val={"number":1234,"Validation":YES}

我想要像这样的itemid:number使用 awk 的输出

5555:1234

谢谢

钢刀

如果你有 GNU Awk:

$ gawk '
  BEGINFILE{
    split(FILENAME,a,/=/)
  } 
  match($0,/"number":[0-9]+/){
    printf "%s:%d\n", a[2], substr($0,9+RSTART,RLENGTH)
  }
  ' total_val*
5555:1234

或者用 Perl

$ perl -lnE '$x = (split /=/,$ARGV)[1]; say "$x:$1" if /"number":(\d+)/' total_val*
5555:1234

在这两种情况下都没有进行任何检查(例如,文件名在=符号上成功拆分)。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章