用文件中的sed替换部分url

时间:2017-01-13 20:49:03

标签: bash sed command-line

我有一个充满网址的文件,如下所示:

https://testing/this/now

我需要将它们全部替换为使用sed专门用于:

{{1}}

并使用更新的内容在最后保存文件。所以实际上删除 “'字符串中存在的任何内容' ' for'(无论长度如何),但保留后者'现在'网址的一部分。

提前致谢。

文森特

2 个答案:

答案 0 :(得分:0)

您可以使用此sed命令删除https://testing/this/之后的2个路径:

sed -i.bak 's|\(https://testing/this/\)[^/]*/[^/]*/|\1|'' file

<强>解释

\(https://testing/this/\)  # match and group https://testing/this/
[^/]*/                     # match 0 or more of any character that is not /
[^/]*/                     # match 0 or more of any character that is not /

在替换中,我们使用\1作为对第一个捕获组的反向引用。

示例:

s='https://testing/this/string/for/now'
sed 's|\(https://testing/this/\)[^/]*/[^/]*/|\1|' <<< "$s"
https://testing/this/now

答案 1 :(得分:0)

这是使用cut

的简单解决方案
# echo https://testing/this/string/for/now | cut -d/ -f1-4,7
https://testing/this/now

要处理文件,只需运行cut -d/ -f1-4,7 < input.txt > output.txt