我创建了这个 sed 是为了从 fstab 中删除注释行(注释可以以空格或 TAB 等开头)
sed '/^[[:blank:]]*#/d' /etc/fstab
在我的例子中,我还想添加条件以删除包含单词数据的注释行
例子
# UUID=381ff65e-01e0-4e14-9f2a-9e493d13ae45 /data/sdb ext4 defaults,noatime 0 0
#UUID=cbe83dcd-3a01-4160-b1cd-f959106ee3de /data/sdc ext4 defaults,noatime 0 0
所以我尝试了这个语法
sed '/data/ /^[[:blank:]]*#/d' /etc/fstab
sed: -e expression #1, char 8: unknown command: `/'
我的 sed 命令需要改进什么?
答案1
您搜索的语法是:
sed '/data/d ; /^[[:blank:]]*#/d' /etc/fstab
分号分隔两个命令。
如果要在两个条件之间进行逻辑与运算,可以使用awk
命令(不知道sed
:
awk '!/^[[:blank:]]*#/ || !/data/ {print}' /etc/fstab