【发布时间】:2017-01-20 16:40:50
【问题描述】:
我有一个 AWK 脚本,它逐行遍历文件,并根据找到的内容执行各种操作,一切正常。最近发现有些行需要忽略,都遵循格式
FOO_.....
所以我需要匹配空格FOO_。还有一些我不想匹配的行
BAR_... FOO_...
所以匹配需要是行首。这一切都应该很容易,我很快就设置好了
if($0 ~ /^\s*FOO_/)
{
continue;
}
不幸的是,上述方法不起作用。我尝试了很多检查,直到我终于能够让它工作
if($0 ~ /^ *\t*FOO_/)
{
continue;
}
因此,由于某种原因,\s* 无法正确匹配空格,但*\t*(一个或多个空格,一个或多个制表符)确实有效。第二个工作意味着匹配的所有内容要么是空格要么是制表符,它们都应该包含在\s 下,所以我真的不确定为什么\s 不起作用。
我可以让它与其他选项一起使用,但它并不理想,我只是好奇可能导致此问题的原因。
【问题讨论】: