使用固定的记录长度文件并尝试检查位置134处的列的空间以及所有空间的长度为160
这是我所拥有的:

 awk file.test |awk '{ teststr=substr($0,134,160); if (teststr ~ /^[[:space:]]*$/) {print "ALLSPACES"teststr"end"} else {print "NOTALLSPACES"teststr"end"} } '


即使teststr上有值,它也总是返回else部分

NOTALLSPACESTHIS IS A TESTend
NOTALLSPACES              end
NOTALLSPACES              end


awk语句/ regex有什么问题

最佳答案

错字是造成问题的原因。.用正确的答案更新了上述awk语句

 awk file.test |awk '{ teststr=substr($0,134,160); if (teststr ~ /^[[:space:]]*$/) {print "ALLSPACES"teststr"end"} else {print "NOTALLSPACES"teststr"end"} } '


TYPE:空格后的* $

关于regex - awk检查列中的空格,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38965005/

10-11 15:33