如何为curl结合grep的输出每行添加指定前缀?
解决方案:为每行输出添加指定前缀
以下是几种简单直接的实现方式:
1. 使用 sed 命令
直接通过sed的替换功能,在行首插入指定前缀:
curl -s https://www.url.com/ | grep -Eo '/news/[^ >]+' | sed 's/^/https:\/\/www.url.com/'
解释:s/^/xxx/ 是sed的替换语法,^ 匹配行首位置,将其替换为目标前缀(注意斜杠需要转义)。
2. 使用 awk 命令
利用awk的文本拼接能力,直接输出前缀加每行内容:
curl -s https://www.url.com/ | grep -Eo '/news/[^ >]+' | awk '{print "https://www.url.com"$0}'
解释:$0 代表当前整行内容,print 命令直接将前缀与行内容拼接后输出。
3. 使用 xargs + printf
通过xargs传递每行内容,结合printf格式化输出:
curl -s https://www.url.com/ | grep -Eo '/news/[^ >]+' | xargs -I {} printf "https://www.url.com%s\n" {}
解释:-I {} 指定用{}作为占位符,printf会将每行内容替换到占位符位置,再拼接前缀输出。
进阶:用变量统一管理前缀
如果需要频繁修改前缀,可将其定义为变量,让命令更易维护:
prefix="https://www.url.com" curl -s https://www.url.com/ | grep -Eo '/news/[^ >]+' | sed "s/^/$prefix/"
内容的提问来源于stack exchange,提问作者cristobal veas
相关产品推荐
相关产品推荐

