AWK中的模式匹配

时间:2018-05-27 06:31:43

标签: shell awk

我有以下要求。我想跳过文件中的第一行和最后一行。在所有其他行中,必须检查前两个字符的空格。为此,我用一些字符替换空格并提取第一个字符。我应该将它们与#进行比较,如果匹配则抛出一些错误

AWK 'NR>2 {gsub(/\ /,"#",prev);}{print substr(prev,1,2)}{prev=$0}' input file

有了这个,我能够替换和提取,但不能将子串与##进行比较。请帮忙

1 个答案:

答案 0 :(得分:0)

无需替换和测试替代品,而是可以这样做

$ awk 'p~/^  /{exit 1} NR>1{p=$0}' file

延迟计算将跳过最后一条记录,跳过NR>1上的第一条记录条件,如果记录以两个空格退出并带有错误代码,否则它将成功退出(默认)。