xrk*_*rkr 3 sed awk shell-script text-processing
我正在尝试在包含以下信息的文件中匹配模式“SHM”并打印与该模式匹配的单词。
LOCALZONE01 ASHM001002003VOL01
BSHM001002003VOL02
CSHM001002003VOL03
DSHM001002003VOL03_DUP
ESHM001002003VOL04
FSHM001002003VOL05
GSHM001002003VOL06_
HSHM001002003VOL07
Run Code Online (Sandbox Code Playgroud)
我尝试使用 awk 打印第二列:
grep "SHM" <filename.txt> | awk -F" " '{print $2}'
ASHM001002003VOL01
Run Code Online (Sandbox Code Playgroud)
如果我尝试打印第 1 列,它会给我以下输出:
LOCALZONE01
BSHM001002003VOL02
CSHM001002003VOL03
DSHM001002003VOL03_DUP
ESHM001002003VOL04
FSHM001002003VOL05
GSHM001002003VOL06_
HSHM001002003VOL07
Run Code Online (Sandbox Code Playgroud)
下面是我想要的输出。我怎么才能得到它?
ASHM001002003VOL01
BSHM001002003VOL02
CSHM001002003VOL03
DSHM001002003VOL03_DUP
ESHM001002003VOL04
FSHM001002003VOL05
GSHM001002003VOL06_
HSHM001002003VOL07
Run Code Online (Sandbox Code Playgroud)
如果您有可用的 GNU grep,
grep -Eo '[[:alnum:]_]*SHM[[:alnum:]_]*' < filename.txt
Run Code Online (Sandbox Code Playgroud)
如果没有,您可以要求 awk 遍历每一行的字段,寻找 SHM:
awk '{ for(i=1;i<=NF;i++) if ($i ~ /SHM/) print $i }' < filename.txt
Run Code Online (Sandbox Code Playgroud)