我有一个 AWK 脚本,它逐行遍历文件并对其找到的内容执行各种操作,这些操作都工作正常。最近发现有些行需要忽略,全部遵循格式
FOO_.....
Run Code Online (Sandbox Code Playgroud)
所以我需要匹配空格FOO_。还有一些我不想匹配的行
BAR_... FOO_...
Run Code Online (Sandbox Code Playgroud)
所以比赛需要从比赛开始。这一切应该很容易,我很快就设置好了
if($0 ~ /^\s*FOO_/)
{
continue;
}
Run Code Online (Sandbox Code Playgroud)
不幸的是上面的方法没有起作用。我尝试了很多检查,直到我终于能够让它发挥作用
if($0 ~ /^ *\t*FOO_/)
{
continue;
}
Run Code Online (Sandbox Code Playgroud)
因此,由于某种原因\s*无法正确匹配空白,但是*\t*(一个或多个空格,一个或多个制表符)确实有效。第二个有效意味着要匹配的所有内容都是空格或制表符,它们都应该被覆盖在下面,\s所以我真的不确定为什么它\s不起作用。
我可以让它与其他选项一起使用,但它并不理想,我只是好奇什么可能导致这个问题。