繁体   English   中英

Grep表达式排除了我想要的一些匹配项

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM