SED命令如下

时间:2018-12-30 23:47:44

标签: sed

我想使用SED转换以下文本文件中的几百行:

输入示例:

https://mysite.demo.com/topics/en-gb/3
https://mysite.demo.com/topics/en-gb/436
https://mysite.demo.com/topics/en-gb/9167

进入

输出:

https://mysite.demo.com/topics/en-gb/3/pdf/3.pdf
https://mysite.demo.com/topics/en-gb/436/pdf/436.pdf
https://mysite.demo.com/topics/en-gb/9167/pdf/9167.pdf

我想知道我将使用什么SED命令执行此操作?

非常感谢

2 个答案:

答案 0 :(得分:0)

运行: echo "https://mysite.demo.com/topics/en-gb/3" |\ sed "s|\(https:\/\/mysite.demo.com\/topics\/en-gb\)\/\([0-9]\+\)|\1/\2/pdf/\2.pdf|g"

输出https://mysite.demo.com/topics/en-gb/3/pdf/3.pdf

在这里我使用sed "s|||"而不是sed "s///"

答案 1 :(得分:0)

根据您的示例输入和预期输出,此sed命令将起作用:

sed -E 's,(.*\/)([0-9]+$),\1\2\/pdf\/\2\.pdf,g' text_file

输出:

https://mysite.demo.com/topics/en-gb/3/pdf/3.pdf
https://mysite.demo.com/topics/en-gb/436/pdf/436.pdf
https://mysite.demo.com/topics/en-gb/9167/pdf/9167.pdf