删除以#开头的行

删除以#开头的行

#如果 a 的左侧和右侧可能有空格,如何删除以 a 开头的行#

  # Master socket provides access to userdb information. It's typically

答案1

这似乎可行,但我没有深入思考:

sed -e '/^[[:space:]]*#/d'

答案2

你可以用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

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

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

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

相关内容