sed删除选项更改分隔符

pok*_*ero 6 sed

我想从匹配某些字符串的文件中删除行.这些字符串包含斜杠,即'/'.我的问题是虽然您可以使用sed更改分隔符以进行替换,但您似乎无法使用delete选项执行此操作.

即因为$ x中的斜线,这不起作用:

sed --in-place "/$x/d" total-list.csv
Run Code Online (Sandbox Code Playgroud)

其中$ x例如是" http://someurl.com/uri ".但是在使用d选项时你似乎无法更改分隔符(例如,我需要它来代替/).

任何人都可以帮忙吗?

谢谢保罗

dev*_*ull 11

你可以说:

sed --in-place "\~$x~d" total-list.csv
Run Code Online (Sandbox Code Playgroud)

引自手册:

\%的正则表达式%

(%可以用任何其他单个字符替换.)

这也匹配正则表达式regexp,但允许使用不同的分隔符/.如果正则表达式本身包含很多斜杠,这是特别有用的,因为它避免了每个人的繁琐逃避/.如果regexp本身包含任何分隔符,则必须使用反斜杠(\)对每个分隔符进行转义.