Linux学习之三剑客

1、grep:文本搜索工具,搜索文本内容

grep "my" a :在a文件中搜索含有my行的内容

cat a | grep -i "my":在a文件中搜索含有my行的内容,忽略大小写

cat a | grep -o "my" :在a文件中搜索my,精准匹配,只显示含有的my

echo abcdefg | grep -o "c." 匹配cd, grep -o "c.*":匹配到cdefg

curl -s http://www.baidu.com/s?wd=mp3 | grep -o "结果约[0-9,]*"

[0-9,]匹配0-9任意数字或者逗号输出,没有*则会只输出一位

通过管道命令对上面得到的结果过滤到只剩下数字部分:

curl -s http://www.baidu.com/s?wd=mp3 | grep -o "结果约[0-9,]*" | grep -o "[0-9,]*"

while read k;do echo $k;done < keyword.txt 

while read k;do echo $k;curl -s https://www.sogou.com/web?query=$k;done < keyword.txt |grep -o "找到约[0-9,]*"

while read k;do echo $k;curl -s http://www.baidu.com/s?wd=$k | grep -o "结果约[0-9,]*" | grep -o "[0-9]*" | while read x ;do printf $x;done;echo;done <baidu.keyword

通过输入重定向<,将keyword.txt的内容通过whild循环逐行传入,通过curl进行搜索结果页面查看,最后通过grep搜索相应内容

2、awk:将文件逐行读入,默认以空格为分隔符,将文本内容分割

echo "123|456|789" | awk -F "|" '{print $0}'   以|为分隔符讲文本分割,$0打印所有字符 $1打印出第一段

echo "123*456-789" | awk -F "*|-" '{print $1,$2}' 以*或者-为分隔符,-F 指定分隔符,不加默认为空格,$1,$2打印多列

curl -s http://www.baidu.com/s?wd=mp3 | grep -o "结果约[0-9,]*" | awk -F '约' '{print $2}'

3、sed:文本替换

echo "cat dog fish cat " | sed 's/cat/mytest/g'  g全部替换,不加g只替换首个

sed 's/my/a/' test.txt 将文本的内容取到模式空间后替换,要替换原始文件则需要sed -i .....

sed -i.bak 's/my/a/' test.txt 将文本的内容替换并生成一个原始文件的备份文件

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值