我想提取不包含的行#
并删除"
, ;
在输出中。
我的输入文件如下所示:
# ;string"1"
# string"2";
string"3";
Can use grep
and tr
获得想要的输出:
grep -v '#' FILE | tr -d ';"'
string3
不过我想用awk
.
我可以提取反向匹配awk '!/#/' FILE
,但我该如何使用sub
删除"
, ;
在相同的awk
命令?
您可以使用gsub
对于全局替换:
awk '!/#/{gsub(/[";]/,"",$0);print}'
以下文字记录显示了这一点的实际效果,它提供了与您相同的结果grep/tr
管道:
pax> echo '# ;string"1"
# string"2";
string"3";' | awk '!/#/{gsub(/[";]/,"",$0);print}{}'
string3
注意最后的{}
在某些实现中可能没有必要awk
但它可以阻止那些实现(通常是较旧的实现)中不匹配行的输出,这些实现会自动对不匹配任何规则的行执行此操作。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)