我想使用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命令执行此操作?
非常感谢
答案 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