删除以#开头的行


Answers:



10

您可以使用grep

grep -vh '^[[:space:]]*#' filename

由于我假设您要从某个文件中删除注释,因此您可能还考虑删除空行,从而将以上内容扩展为:

grep -vh '^[[:space:]]*\(#\|$\)' filename

3

awk 解决方案是反转匹配您的模式。

$> cat ./text
elephant
# Master socket provides access to userdb information. It's typically
zoo
 #ok
penguin
# !

$> awk '!/^(\ )*#/ {print $0}' ./text
elephant
zoo
penguin

4
无需转义空格字符,无需捕获空格字符,无需指定默认操作:awk '!/^ *#/' ./text
manatwork

awk '/^ *#/{next}1' file应该足够好
jaypal singh 2011年


0

使用ДМИТРИЙМАЛИКОВ发布的样本数据...

$ grep -vPh '^\s*#' filename.txt | grep -Po '\w+'
elephant
zoo
penguin

我更喜欢将pcre与grep一起使用,因此我对grep使用-P开关(必须为GNU grep)。第二个grep是纯糖,可为您提供没有空格的单词。它还将“删除”空白行。


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.