我有以下要求。我想跳过文件中的第一行和最后一行。在所有其他行中,必须检查前两个字符的空格。为此,我用一些字符替换空格并提取第一个字符。我应该将它们与#进行比较,如果匹配则抛出一些错误
AWK 'NR>2 {gsub(/\ /,"#",prev);}{print substr(prev,1,2)}{prev=$0}' input file
有了这个,我能够替换和提取,但不能将子串与##进行比较。请帮忙
答案 0 :(得分:0)
无需替换和测试替代品,而是可以这样做
$ awk 'p~/^ /{exit 1} NR>1{p=$0}' file
延迟计算将跳过最后一条记录,跳过NR>1
上的第一条记录条件,如果记录以两个空格退出并带有错误代码,否则它将成功退出(默认)。