#
如果 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 是纯糖,可以为您提供没有空格的单词。它还会“删除”空行。