使用固定的记录长度文件并尝试检查位置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/