全球主机交流论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

CeraNetworks网络延迟测速工具IP归属甄别会员请立即修改密码
查看: 1566|回复: 22
打印 上一主题 下一主题

大佬们,这个shell怎么写,一行命令写出来,可以用sed

[复制链接]
跳转到指定楼层
1#
发表于 2022-9-21 20:52:35 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
convert https://www.baidu.com/aaa/bbb/ccc/xxx.zip to www-baidu-com-aaa-bbb-ccc-xxx

要兼容 schema 是 http 的情况,即

也要把 http://www.baidu.com/aaa/bbb/ccc/xxx.zip 转化成 www-baidu-com-aaa-bbb-ccc-xxx
推荐
发表于 2022-9-21 21:32:02 | 只看该作者
HOH 发表于 2022-9-21 21:08
跟@iks 一样什么都想用正则搞


你懂什么,我用正则替换你家的丧葬费发
推荐
发表于 2022-9-21 21:24:42 | 只看该作者
要啥sed,shell内置功能就可以
  1. parse () { : "${1#*://}"; : "${_////-}"; : "${_//./-}"; echo "${_%-*}"; }
复制代码
  1. $ parse 'http://www.baidu.com/aaa/bbb/ccc/xxx.zip'
  2. www-baidu-com-aaa-bbb-ccc-xxx
  3. $ parse 'https://www.baidu.com/aaa/bbb/ccc/xxx.zip'
  4. www-baidu-com-aaa-bbb-ccc-xxx
复制代码

点评

这个好像看着有点复杂....  发表于 2022-9-21 21:27
推荐
发表于 2022-9-21 21:07:23 | 只看该作者

好难~
2#
 楼主| 发表于 2022-9-21 20:54:29 | 只看该作者
sed 对正则表达式的支持不全,尝试了几十分钟都没有写对,求助大佬们。
4#
发表于 2022-9-21 21:08:42 | 只看该作者
@iks 一样什么都想用正则搞
5#
 楼主| 发表于 2022-9-21 21:12:47 | 只看该作者
  1. echo "https://www.baidu.com/aaa/bbb/ccc/xxx.iso" | awk -F"//" '{print $2}' | sed  "s/\//-/g" | sed "s/\./-/g"
复制代码




这样写出来了,但这样实现与我的初衷有点违背,我希望一次 sed 就能拿到值

6#
发表于 2022-9-21 21:17:22 | 只看该作者
fg9907 发表于 2022-9-21 21:12
这样写出来了,但这样实现与我的初衷有点违背,我希望一次 sed 就能拿到值

...

强迫症吗
7#
 楼主| 发表于 2022-9-21 21:21:00 | 只看该作者

好吧  
8#
 楼主| 发表于 2022-9-21 21:22:49 | 只看该作者
  1. $ echo "https://www.baidu.com/aaa/bbb/ccc/xxx.zip" | awk -F"//" '{print $2}' | sed  "s/\//-/g" | sed "s/\./-/g" | sed "s/.zip//g"
  2. www-baidu-com-aaa-bbb-ccc-xxx
复制代码
9#
发表于 2022-9-21 21:23:21 | 只看该作者

echo "https://www.baidu.com/aaa/bbb/ccc/xxx.iso" | sed -e "s/https:\/\///g" -e "s/\//-/g" -e "s/\./-/g"
使用-e 匹配多个条件
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|全球主机交流论坛

GMT+8, 2024-5-30 12:53 , Processed in 0.090329 second(s), 14 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表