7

我想从与某些字符串匹配的文件中删除行。这些字符串包含斜杠,即'/'。我的问题是,尽管您可以使用 sed 更改分隔符以进行替换,但使用 delete 选项似乎无法这样做。

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

sed --in-place "/$x/d" total-list.csv

其中 $x 是例如“ http://someurl.com/uri ”。但是在使用 d 选项时,您似乎无法更改分隔符(例如,我需要它是 ~,而不是 /)。

有人可以帮忙吗?

谢谢保罗

4

1 回答 1

12

你可以说:

sed --in-place "\~$x~d" total-list.csv

引用手册

\%正则表达式%

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

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

于 2013-10-31T17:29:33.400 回答