САС команды к следующему - PullRequest
       8

САС команды к следующему

0 голосов
/ 31 декабря 2018

Используя 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 голосов
/ 31 декабря 2018

В соответствии с вашими примерами ввода и ожидаемого вывода, эта команда 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
0 голосов
/ 31 декабря 2018

Прогон: 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///".

...