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 }' 这强调有两种模式行为规则;一个具有显式模式和退出动作;另一个是隐式模式和打印动作. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |