搜索文件中的字符串,忽略以#开头的行

时间:2010-06-08 06:55:58

标签: unix find awk grep query-string

我想在带有“awk”或“grep”的文件中找到一个字符串,例如“qwertty =”,但我不想看到带#的行。请参阅示例

grep -ni "qwertty"   /aaa/bbb
798:#  * qwertty - enable/disable 
1222:#qwertty=1
1223:qwertty=2  
1224:#qwertty=3

我想找到1223行。 为此目的,搜索查询应该是什么?

4 个答案:

答案 0 :(得分:2)

grep -ni '^qwertty=' /aaa/bbb

如果你想要更多的灵活性(例如,在行中的任何地方都没有哈希,也许在关键字之前可能有空格,也许关键字嵌入在一个更大的单词中,并且可能在'='符号周围空白),那么你需要一个更复杂的表达:

grep -ni '^[^#]*qwertty[^#]*=[^#]*$' /aaa/bbb

答案 1 :(得分:1)

如果我理解这个问题,我会解决这个难题:

grep -v '^#' | grep -ni "qwertty"

或更好:

sed '/^#/d' | grep -ni "qwertty"

答案 2 :(得分:0)

awk '/^#/ {next} /qwertty/' afile

答案 3 :(得分:0)

grep -ni "qwertty"   /aaa/bbb|grep -v '^#'
相关问题