rah*_*hul 2 linux text-processing
我的文件包含以下数据:
tail fn0 logfile
more tail3 fn0 logfile1
get than tail4 fn0 logfile2
Run Code Online (Sandbox Code Playgroud)
我想从 fn0 之前的字段和 fn0 之后的字段中获取输出。
预期输出:
tail logfile
tail3 logfile1
tail4 logfile2
Run Code Online (Sandbox Code Playgroud)
您可以使用awk
:
awk -v pattern="fn0" '{for (i=0;i<=NF;i++) {if ($i==pattern) print $(i-1),$(i+1) }}' file
Run Code Online (Sandbox Code Playgroud)
或者如果您想使用正则表达式模式:
awk -v pattern="^fn0$" '{for (i=0;i<=NF;i++) {if ($i~pattern) print $(i-1),$(i+1) }}' file
Run Code Online (Sandbox Code Playgroud)
输出:
tail logfile
tail3 logfile1
tail4 logfile2
Run Code Online (Sandbox Code Playgroud)