假设我有一个包含6列的文本文件,如下所示
a|b|c|d|e|f
我知道文件中的字符' d'存在,但我想知道它的列号
我使用了以下命令
awk 's=index($0,"d"){print "position="s}' filename
但它也计算了我不想要的分隔符....我希望输出为4,以及#34; d"
答案 0 :(得分:6)
使用awk你可以这样做:
awk -v val='d' -F '|' '{for (i=1; i<=NF; i++) if ($i==val) {print i} }' file
4
答案 1 :(得分:6)
定义&#34; |&#34;作为记录分隔符,并在awk中使用NR变量:
awk -v RS="|" '/^d$/{print NR;}' filename
将^d$
更改为您想要匹配的内容。