[英]Grep expression is excluding some matches that I want
我正在开发一个程序,该程序从bash文件中提取注释并将其输出到新文件。
我需要忽略用'或“引号引起来的#,我认为我做对了。
grep -oe "[^\'\"\\]#[^\'\"].*" somefile >> somecomments
这将提取注释,然后加上一些精细的文本,例如
echo Sum: $Sum # Displays the sum
将在输出文件中转换为“#显示总和”。 问题是由于某种原因,现在排除了以#开头的行,例如
# Name
# Date
完全不会显示在输出文件中。
如何修复表达式,以便仍然可以排除#前面的引号,但是提取出以#开头的行?
检查以下内容是否对您有用:
grep -oe "[^\'\"\\]#[^\'\"].*" -e "^#.*" somefile >> somecomments
但是,正如评论之一所说,您将不得不处理许多例外情况。
如果有这样的声明怎么办
echo '<space> ########### Following code does this #########<space>'
您必须牢记所有这些机会。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.