gpt4 book ai didi

Bash:显示没有注释和空行的有效文件内容

转载 作者:行者123 更新时间:2023-11-29 09:22:58 25 4
gpt4 key购买 nike

假设我有一个配置文件 (stuff.conf),它看起来像这样(我的真实文件大约有 1000 行):

# Some comment
foo=bar

# Other comment
foobar=barfoo

# Another one
abc=123 # inline comment
....

我想显示这个文件中的有效值,没有任何注释或空行。我想打印的是:

foo=bar
foobar=barfoo
abc=123
...

我可以去掉空行和注释行:

cat stuff.conf | grep -v "#" | grep -v "^$"

但它也会删除注释标记 (#) 不在行首的行(例如:abc=123 # inline comment)。输出如下所示:

foo=bar
foobar=barfoo
...

问题:

如何设法显示所有不是以# 开头的行或空行?在 abc=123 # inline comment 的特殊情况下,我不关心行尾的注释是否显示。

最佳答案

使用 sed 你可以这样做:

sed -E '/^[[:blank:]]*(#|$)/d; s/#.*//' file

foo=bar
foobar=barfoo
abc=123
  • Regex /^[[:blank:]]*(#|$)/ 将匹配所有以 # 开头的行,之前或如果可选空格只有一个带有空格的空行。
  • /d 将删除那些行和
  • s/#.*// 将删除行内注释。

关于Bash:显示没有注释和空行的有效文件内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42855028/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com