Suppose a file /etc/fstab
contains the following:
/dev/xvda1 / ext4 defaults 1 1
/dev/md0 /mnt/ibsraid xfs defaults,noatime 0 2
/mnt/ibsr
You were very close. When you use a nonstandard character for a pattern delimiter, such as |pattern|
, the first use of that character must be escaped:
$ 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
Similarly, one can use:
sed '\?^/dev/xvdb?d' /etc/fstab
Lastly, it is possible to use slashes inside of /pattern/
if they are escaped in the way that you showed in your answer.