Linux中grep/awk/sed简单使用

1.grep

  查询日志文件api.log中匹配的关键词前两行和后3行内容追加到log.txt末尾;

   grep keyword -B 2 -A 3 api.log >>log.txt 

2.awk

awk语言的最基本功能是在文件或者字符串中基于指定规则浏览和抽取信息,awk抽取信息后,才能进行其他文本操作。完整的awk脚本通常用来格式化文本文件中的信息。

通常,awk是以文件的一行为处理单位的。awk每接收文件的一行,然后执行相应的命令,来处理文本。

awk使用场景如下:通过crontab定时任务监控cpu缓存大小,自动清理缓存。

 clearBuffCache.sh脚本如下,添加到crontab中即可(crontab -l:查看crontab;crontab -e:编辑crontab):

Mem=$(free -m | awk 'NR==2' | awk '{print $6}') #NR==2是取第二行的意思 或者 free -m|grep Mem |awk '{print $6}'
if [ $Mem -lt 400 ];
then
echo "Service memory capacity is normal!" > /dev/null
else
sync
echo "1" > /proc/sys/vm/drop_caches #清理PageCache,释放页缓存
echo "2" > /proc/sys/vm/drop_caches #释放dentries和inodes,清空文件节点缓存和目录项缓存
echo "3" > /proc/sys/vm/drop_caches #清空1和2所有内容的缓存
sync
fi

3.sed

sed是一个很好的文件处理工具,本身是一个管道命令,主要是以行为单位进行处理,可以将数据行进行替换、删除、新增、选取等特定工作。

sed使用:  

#将test.txt文件中所有“hello”字符串替换为"Hello"
sed -i 's/hello/Hello/g' test.txt 
#删除匹配行
sed -i '/匹配字符串/d'  filename #包含匹配字符串的行会被删除

  

 

  

原文地址:https://www.cnblogs.com/itfeng813/p/14734343.html