我想在带有“awk”或“grep”的文件中找到一个字符串,例如“qwertty =”,但我不想看到带#的行。请参阅示例
grep -ni "qwertty" /aaa/bbb
798:# * qwertty - enable/disable
1222:#qwertty=1
1223:qwertty=2
1224:#qwertty=3
我想找到1223行。 为此目的,搜索查询应该是什么?
答案 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 '^#'