假设我有一个这样的文件:
d,e,c,g,v,c,w,r
g,c,d,c,s,c,g,r
d,y,c,w,t,g,c,f
Run Code Online (Sandbox Code Playgroud)
现在我想打印出现在每行第一个“c”之后的列(没有逗号分隔符)。所以我的输出看起来像这样
g
d
w
Run Code Online (Sandbox Code Playgroud)
我试过代码:
awk -F"," '{for (i=1;i<=NF;i++) if ($i == "c") {print $(i+1)};}' filename
Run Code Online (Sandbox Code Playgroud)
但是在输出中,我得到了出现在每个“c”之后的列。我只想要出现在第一个 'c' 之后的列。如何解决问题最好使用awk。
提前致谢
使用 awk 关键字next在每行第一个找到“c”后跳到下一行:
$ awk -F"," '{for (i=1;i<=NF;i++) if ($i == "c") {print $(i+1);next};}' filename
g
d
w
Run Code Online (Sandbox Code Playgroud)