打印图案的位置给出

时间:2014-10-28 19:23:24

标签: regex bash awk sed grep

美好的一天,

我想知道是否有办法通过指示字段分隔符来了解模式的位置。

预期输入

字段分隔符=

pattern = word

abc,def,ghi,word,jkl
mno,pqr,word,stu,vwx

预期输出

word,1,4
word,2,3

上一个输出遵循以下结构:PATTERN,NR,FIELD POSITION

提前感谢任何线索。

2 个答案:

答案 0 :(得分:4)

以下是解决您的要求的解决方案:

$ awk -v str="word" 'BEGIN{FS=OFS=","} {for (i=1;i<=NF;i++) if ($i==str) print str,NR,i}' file
word,1,4
word,2,3

答案 1 :(得分:1)

使用perl:

perl -F, -lanE 'BEGIN {$str=shift; $,=","} say $str,$.,$_+1 for grep {$F[$_] eq $str} 0..$#F' "word" file