linux – sed:如何删除匹配包含正斜杠的模式的行?
发布时间:2020-12-13 19:44:12 所属栏目:Linux 来源:网络整理
导读:假设文件/ etc / fstab包含以下内容: /dev/xvda1 / ext4 defaults 1 1/dev/md0 /mnt/ibsraid xfs defaults,noatime 0 2/mnt/ibsraid/varlog /var/log none bind 0 0/dev/xvdb None auto defaults,nobootwait 0 2 我想删除以/ dev / xvdb开头的行.所以我试过
假设文件/ etc / fstab包含以下内容:
/dev/xvda1 / ext4 defaults 1 1 /dev/md0 /mnt/ibsraid xfs defaults,noatime 0 2 /mnt/ibsraid/varlog /var/log none bind 0 0 /dev/xvdb None auto defaults,nobootwait 0 2 我想删除以/ dev / xvdb开头的行.所以我试过: $sed '/^/dev/xvdb/d' /etc/fstab sed: -e expression #1,char 5: extra characters after command $sed '?^/dev/xvdb?d' /etc/fstab sed: -e expression #1,char 1: unknown command: `?' $sed '|^/dev/xvdb|d' /etc/fstab sed: -e expression #1,char 1: unknown command: `|' 这些都不行.我试着改变分隔符?和|因为当模式包含/时,这样做适用于sed替换命令. 我在Debian上使用GNU Sed 4.2.1. 解决方法
你很近对于模式分隔符(如| pattern |)使用非标准字符时,必须首先使用该字符进行转义:
$sed '|^/dev/xvdb|d' /etc/fstab /dev/xvda1 / ext4 defaults 1 1 /dev/md0 /mnt/ibsraid xfs defaults,noatime 0 2 /mnt/ibsraid/varlog /var/log none bind 0 0 同样,可以使用: sed '?^/dev/xvdb?d' /etc/fstab 最后,可以使用/ pattern /中的斜线,如果它们以您在答案中显示的方式进行转义. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |