我有一个名为1.txt的文件,它包含以下3个网址,每个网址都有一个http链接,我想使用sed命令更改它们。链接可以被视为一个没有空格的字符串。
URL1: https://i.stack.imgur.com/Zw5ZK.png
URL2: https://i.stack.imgur.com/cT8Pv.png
URL3: https://i.stack.imgur.com/L3Syn.png
我的目的是使用类似下面的东西来取代这3个链接从命令行,如:
sed****1.txt https://abc/1.png https://abc/2.png https://abc/3.png
执行命令后,1.txt的新内容将为:
URL1: https://abc/1.png
URL2: https://abc/2.png
URL3: https://abc/3.png
4条答案
按热度按时间olqngx591#
像这样的东西?
a=gensub(/URL([^:]+):/,"\\1",1,$1)
捕获第一列中URL的数字部分。sub(/i\.stack\.imgur.com\/.*/,"abc",$2)
在第二列中将整个实际URL替换为https://abc
。print $1,$2"/"a".png"
打印带有新编号png的新行。o2gm4chl2#
使用
sed
3pvhb19x3#
使用
awk
要容易得多:使用
sub
的替代awk
解决方案:4c8rllxm4#
这里有一个简单的 Package 器,它可以将命令行参数转换成一个合适的
sed
脚本。