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 将文本的内容替换并生成一个原始文件的备份文件