shell怎么提取一段字符串的一部分
Tofloor
poster avatar
老陌
deepin
2018-07-26 01:23
Author
本帖最后由 myccloves 于 2018-7-25 17:25 编辑




我想要提取:
www.xx.com/1.jpg
www.yy.com/2.jpg


Reply Favorite View the author
All Replies
avatar
180******66
deepin
2018-07-26 01:39
#1
shell正则表达式了解一下
Reply View the author
avatar
wallestar
deepin
2018-07-26 01:54
#2
简单点的,仅针对示例:
echo "sdfdsdf2342" | cut -c5-20
5-20表示截取第5-20位的字符

通用点的:
echo "sdfdsdf2342" | grep -o 'www.*jpg'
这是正则表达式,-o表示仅返回匹配的部分
Reply View the author
Comments
myccloves
2018-07-26 02:51
好了,测试通过,谢谢。
avatar
wallestar
deepin
2018-07-26 01:58
#3
https://bbs.deepin.org/post/166561
简单点的,仅针对示例:
echo "sdfdsdf2342" | cut -c5-20
5-20表示截取第5-20位的字符

晕,原来论坛有bug啊,会自动去打开文本中的url。。。楼主把中间部分替换成你的url即可。
Reply View the author
avatar
许自强
deepin
2018-07-26 02:36
#4
推荐一个网站,菜鸟教程
Reply View the author
avatar
许自强
deepin
2018-07-26 02:36
#5
推荐一个网站,菜鸟教程
Reply View the author
avatar
老陌
deepin
2018-07-26 02:48
#6
https://bbs.deepin.org/post/166561
晕,原来论坛有bug啊,会自动去打开文本中的url。。。楼主把中间部分替换成你的url即可。 ...

这个可以,但我想提取的长度不是固定的。。。
Reply View the author
avatar
老陌
deepin
2018-07-26 02:49
#7
https://bbs.deepin.org/post/166561
简单点的,仅针对示例:
echo "sdfdsdf2342" | cut -c5-20
5-20表示截取第5-20位的字符

看到了。
Reply View the author
avatar
y***8@gmail.com
deepin
2018-07-26 02:56
#8
aa=$(echo 'dyujiwww.xx.com/aa. jpgh' | awk
Reply View the author
avatar
y***8@gmail.com
deepin
2018-07-26 03:13
#9
本帖最后由 madness 于 2018-7-25 19:16 编辑

aa=$(echo 'dyujiwww.xx.com/aa. jpgh' | awk -F'www' '{ print $2}' | awk -F'jpg' '{print $1}')
bb=$(echo $aa | sed 's/^/www/' | sed 's/$/jpg/')

echo $bb
只要您要提取的网址以www开头  以jpg结尾 就可以做到
Reply View the author
avatar
老陌
deepin
2018-07-26 03:14
#10
https://bbs.deepin.org/post/166561
aa=$(echo 'dyujiwww.xx.com/aa. jpgh' | awk -F'www' '{ print $2}' | awk -F'jpg' '{print $1}') bb=$(ec ...

太复杂了。都看不懂了。
Reply View the author
avatar
y***8@gmail.com
deepin
2018-07-26 03:19
#11
myccloves 发表于 2018-7-25 19:14
太复杂了。都看不懂了。

我编辑了一下   您只需要吧第一行单引号中内容替换成你的内容就可以了
Reply View the author
avatar
老陌
deepin
2018-07-26 03:34
#12
https://bbs.deepin.org/post/166561
我编辑了一下   您只需要吧第一行单引号中内容替换成你的内容就可以了

急不来,慢慢消化。谢谢。awk命令还没有学到呢。
Reply View the author