awk“if”声明
发布时间:2020-12-14 01:18:14 所属栏目:Linux 来源:网络整理
导读:我有一个文件 foo--bar 我只想要分隔符上方的行.我已经在这方面挣扎了太长时间,并尝试了许多变种.我的一个班轮是: echo -e "foon-- nbar" | gawk -v x=0 -- '/^-- / { x++ } ; IF (x==0) {print} ' 这应该只打
|
我有一个文件
foo -- bar 我只想要分隔符上方的行.我已经在这方面挣扎了太长时间,并尝试了许多变种.我的一个班轮是: echo -e "foon-- nbar" | gawk -v x=0 -- '/^-- / { x++ } ; IF (x==0) {print} '
这应该只打印“foo”但我得到整个文件输出.如果我改为打印x我得到 0 1 1 我似乎无法使awk根据x的值有条件地打印一行.我知道我错过了一些简单的事情. 解决方法
试着这样做:
echo -e "foon-- nbar" | awk '/^--/{exit}1'
说明 > / ^ – /是一个正则表达式,匹配当前行开头的字符串 分解命令: echo -e "foon-- nbar" | awk '
{
if (/^--/) {
exit
}
else {
print
}
}
'
替代分解: echo -e "foon-- nbar" |
awk '(/^--/) { exit }
{ print }'
这强调有两种模式行为规则;一个具有显式模式和退出动作;另一个是隐式模式和打印动作. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
