Regex Bash删除所有以字符串开头的行,包括空格

Regex Bash删除所有以字符串开头的行,包括空格,regex,linux,bash,awk,sed,Regex,Linux,Bash,Awk,Sed,我试图用sed或awk从fstab中删除几行,我想删除那些以前缀开头的行,这些行可能有空格 我尝试过这个选项:sed-I'/^SomeFileSystem/d'fstab 但这并不是删除这一行 fstab条目: myServer:/clearcase /clearcase nfs rw,hard,intr,bg,tcp,vers=3,rsize=32768,wsize=32768,timeo=4 这是我试图执行的命令 sed -i '/^myServer:/clearcase/d' fstab

我试图用sed或awk从fstab中删除几行,我想删除那些以前缀开头的行,这些行可能有空格

我尝试过这个选项:
sed-I'/^SomeFileSystem/d'fstab
但这并不是删除这一行

fstab条目:

myServer:/clearcase /clearcase nfs rw,hard,intr,bg,tcp,vers=3,rsize=32768,wsize=32768,timeo=4
这是我试图执行的命令

sed -i '/^myServer:/clearcase/d' fstab

这可能不起作用,因为您要查找的字符串中有斜杠
/

只需使用另一个
sed
分隔符:

sed -i '\@^myServer:/clearcase@d' fstab

将斜杠转义到内部:

myServer:/clearcase /clearcase nfs rw,hard,intr,bg,tcp,vers=3,rsize=32768,wsize=32768,timeo=4
试试这个:

sed -i '/^myServer:\/clearcase/d' fstab

如果行可能以空格开头,请调整您的正则表达式

sed -i '\#^ *myserver:/clearcase#d' fstab

这也避免了通过使用与斜杠不同的正则表达式分隔符来转义斜杠的要求。

如果这不起作用,那么该行就不会以
SomeFileSystem
开头。它是从什么开始的?这是我在fstab中真正的行:
myServer:/clearcase/clearcase-nfs-rw,hard,intr,bg,tcp,vers=3,rsize=32768,wsize=32768,timeo=4
这是我正在尝试执行的命令
sed-i'/^myServer:/clearcase/d'fstab
您不能像这样在
/
地址中插入斜杠。逃避它。您没有告诉我们它正在更改行,只是没有删除它。这是一个非常重要的细节,就像实际内容(或同样具有代表性的内容)。地址中的备用分隔符需要避开前导的
@
。行中的空格呢?我注意到它不是这样工作的,所以最好避开
/
@user3502786。最好更新您的问题。这些空间在哪里/@user3502786 sed不关心任何您不匹配的内容。