我正在尝试使用grep -v -e''从文件中排除注释(带有#作为第一个非空白字符的行)。 #可以出现在行的开头,或者在遇到第一个#之前,可能会有任意组合的几个空格和制表符。
假设文件np4包含:
# hash at the begining of the line
## two hashes at the begining of the line
#### four hashes at the begining of the line
# two white spaces then a hash
a good line
another good line starting with a few spaces
a good line starting with a combination of spaces and tabs
# two white spaces, two tabes and then a hash
## two tabs, two white spaces and then two hashes
# tab, ws, tab, ws, tab then hash
我尝试使用下面的命令,但它不能像我想象的那样工作。我应该只输出三行作为输出。
grep -v -e'^ \ s *#。* $'np4
答案 0 :(得分:0)
我相信你缺少的是与一个或多个英镑符号相匹配的加号。我没有像我测试的那样grep,但这看起来不错。我已经为我的测试提供了永久链接。
^ \ S *#+。* $
答案 1 :(得分:0)
不确定\ s是否适用于grep。 你能试试“^ [] #。”? 在[]中有一个空格和一个制表符,两个字符。