【发布时间】:2016-08-16 00:40:30
【问题描述】:
使用固定记录长度的文件并尝试检查从位置 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 有什么问题
【问题讨论】:
-
@Barmar..感谢您帮助格式化我的问题..Oppsie 这是一个错字.. ny 命令的结尾是:但仍然不起作用
-
我试过你的脚本,它工作。不要忘记 awk 中的列位置
substr()是从 1 开始的,而不是从 0 开始的。 -
@Balmar,我又试了一次,它成功了..谢谢!!!