MOH*_*MED 1 linux shell awk sed ash
我有一个文件包含:
aaa.bbbb0.xxxx0=toto
aaa.bbbb0.xxxx1=toto
aaa.bbbb0.xxxx2=titi
eee.ffff.zzzz=kkkk
Run Code Online (Sandbox Code Playgroud)
我想提取包含正则表达式的行"aaa\.bbbb0\.xxxx[0-6]\+=toto",然后提取路径中的第3个元素.所以输出应该以这种方式看待
xxxx
yyyy
Run Code Online (Sandbox Code Playgroud)
我可以使用这个输出grep,然后cut以这种方式:
cat myfile.txt | grep "aaa\.bbbb0\.xxxx[0-6]\+=toto" | cut -d'=' -f1 | cut -d'.' -f3
Run Code Online (Sandbox Code Playgroud)
我怎样才能改变上述grep并且cut仅由一个sed命令或awk指令?
回答上一个问题:
awk -F'[.=]' '$4 ~ /^[[:digit:]]+$/ {print $3}' file
Run Code Online (Sandbox Code Playgroud)
回答当前的问题:
$ awk -F'[.=]' '/aaa\.bbbb0\.xxxx[0-6]+=toto/ {print $3}' file
xxxx0
xxxx1
Run Code Online (Sandbox Code Playgroud)