原创内容,转载请注明出处: https://www.myzhenai.com.cn/post/2254.html https://www.myzhenai.com/thread-17908-1-1.html
关键词: Linux截取字符窜 shell截取字符窜 grep截取字符窜 awk截取字符窜
这个教程是hostloc社区上的一个网友提的问题,他的原意是要通过 curl https://pv.sohu.com/cityjson 来获得一些关键的信息,比如ip和国家代码以及所处国家.
其实这个shell的思路很简单,先将curl获得的内容用sed把所有双引号和空格全部过滤掉,然后用awk来搜索相关关键字获得需要的内容.如果是多行的话,还城要再增加一个grep -v 行里的关键字.
# !/bin/bash var=`curl https://pv.sohu.com/cityjson|sed 's/"//g'|sed -e 's/[ ][ ]*//g'` cip=`echo $var|awk -F "," '{print $1}'|awk -F "cip:" '{print $2}'` cid=`echo $var|awk -F ",cname" '{print $1}'|awk -F "cid:" '{print $2}'` cnme=`echo $var|awk -F "};" '{print $1}'|awk -F "cname:" '{print $2}'` echo $cip echo $cid echo $cnme
如果var变量里返回的数据是多行的话, 还需要在下面的代码上分别增加上grep -v 行里关键字. 例如以下
# !/bin/bash var=`curl https://pv.sohu.com/cityjson|sed 's/"//g'|sed -e 's/[ ][ ]*//g'` cip=`echo $var|grep -v cip:|awk -F "," '{print $1}'|awk -F "cip:" '{print $2}'` cid=`echo $var|grep -v cid|awk -F ",cname" '{print $1}'|awk -F "cid:" '{print $2}'` cnme=`echo $var|grep -v cname|awk -F "};" '{print $1}'|awk -F "cname:" '{print $2}'` echo $cip echo $cid echo $cnme
sicnature ---------------------------------------------------------------------
I P 地 址: 18.227.72.24
区 域 位 置: 美国俄亥俄
系 统 信 息:
Original content, please indicate the source:
同福客栈论坛 | 蟒蛇科普 | 海南乡情论坛 | JiaYu Blog
sicnature ---------------------------------------------------------------------
Welcome to reprint. Please indicate the source https://myzhenai.com/post/2254.html
没有评论