我试图grep文件中的模式。如果在该文件中注释,我想跳过模式发生。 例如,该模式有2次出现,但输出应该是1次出现。基本上它应该跳过注释行 你能为这个
建议一下吗?答案 0 :(得分:1)
剥离shell注释的一种简单常见方法是:
egrep -v '^\s*#' <file>
此处,egrep
为grep
,其中包含正则表达式模式作为输入。模式&#39; ^ \ s#&#39;描述以&#39;#&#39;开头的行。信件,或任何数量的空格后跟&#39;#&#39;。选项-v
反转匹配(不匹配的行通过)。然后,您可以进行进一步的模式搜索。
警告:代码后出现的评论(例如echo 'foo' # bar
)不会被剥离。你不能用这种管道解决方案做到这一点。
答案 1 :(得分:0)
您可以在grep中使用-F选项。 -F代表固定字符串。例如,我有一个包含以下数据的文件:
System out of memory
#System out of memory
System out of memory #1
1 #System out of memory
现在使用-F
进行grep grep -rF "#System out of memory" <path to grep>
输出
./file1:#System out of memory
./file1:1 #System out of memory
这是基本的意识形态。根据您的模式,它必须被修改