use*_*752 4 unix linux shell awk grep
假设我有一个包含6列的文本文件,如下所示
a|b|c|d|e|f
Run Code Online (Sandbox Code Playgroud)
我知道字符'd'存在于文件中的somwhere,但我想知道列号为no
我使用了以下命令
awk 's=index($0,"d"){print "position="s}' filename
Run Code Online (Sandbox Code Playgroud)
但它也计算了我不想要的分隔符......我想在"d"的情况下输出为4
使用awk你可以做到:
awk -v val='d' -F '|' '{for (i=1; i<=NF; i++) if ($i==val) {print i} }' file
4
Run Code Online (Sandbox Code Playgroud)
定义"|" 作为Record Seperator,并在awk中使用NR变量:
awk -v RS="|" '/^d$/{print NR;}' filename
Run Code Online (Sandbox Code Playgroud)
改变^d$你想要匹配的任何东西.
| 归档时间: |
|
| 查看次数: |
7806 次 |
| 最近记录: |