linux BASH:在curl输出的每一行添加前缀

7xzttuei  于 2023-08-03  发布在  Linux
关注(0)|答案(5)|浏览(124)

我试图弄清楚如何在每一行的开头添加一个前缀,这些行是curl的输出:
我有以下命令和输出:
第一个月

/news/category/title-new-bla-bla
/news/category2/title-new-bla-bla2
/news/category3/title-new-bla-bla3
/news/category4/title-new-bla-bla4

字符串
我会在命令中添加前缀https://www.url.com/,可能使用sed或其他工具,如下所示:

https://www.url.com/news/category/title-new-bla-bla
https://www.url.com/news/category2/title-new-bla-bla2
https://www.url.com/news/category3/title-new-bla-bla3
https://www.url.com/news/category4/title-new-bla-bla4


任何帮助我会惊人的请!

tcomlyy6

tcomlyy61#

我们有:

curl -s https://www.url.com | grep -Eo '/news/[^ >]+'

字符串
然后,我们可以添加一个sed:

curl -s https://www.url.com | grep -Eo '/news[^ >]+' \
| sed 's|^|https://www.url.com/|'

9jyewag0

9jyewag02#

由于您使用的是GNU grep,我假设您也有GNU awk,在这种情况下,您可以使用多字符RSRT

curl -s https://www.url.com/ |
awk -v RS='/news/[^ >]+' 'RT{print "https://www.url.com/" RT}'

字符串

628mspwn

628mspwn3#

这里有一个简单的解决方案:

curl -s https://www.url.com/ \
| grep -Eo '/news/[^ >]+' \
| xargs -I "{}" echo "https://www.url.com{}"'

字符串

p5fdfcr1

p5fdfcr14#

使用sed

$ sed -En '\~^/news/~s~^~https://www.url.com~p' <(curl -s https://www.url.com/)
https://www.url.com/news/category/title-new-bla-bla
https://www.url.com/news/category2/title-new-bla-bla2
https://www.url.com/news/category3/title-new-bla-bla3
https://www.url.com/news/category4/title-new-bla-bla4

字符串

daolsyd0

daolsyd05#

您可以使用sed代替grep

curl -s https://www.url.com/ | 
sed -nE 's~.*(/news/[^ >]+).*~https://www.url.com\1~p'

字符串
这个sed将在一行中搜索相同的模式/news/[^ >]+,并在每行的前面加上https://www.url.com

相关问题