linux命令三剑客之 grep,awk,sed 到底有多骚?
可以说,这三个命令是linux文本处理中最重要的命令了,在shell中用的也非常的多。
其中awk复杂到可以把它当做一门语言来学,功能十分之强大。
初探grep
我们需要查找关于系统下root用户相关的信息
可以在/etc/passwd文件下查看,但是我不想用vim打开文件,可以直接用grep进行查看
将会打印包含root
的所有行
当然grep同样支持正则表达式
初探sed
sed可以在不打开文件的情况下编辑文件
将hello替换成world
可以使用sed -i 's/hello/world/g' hello.txt
完成
初探awk
可以提取我们需要的特定列的内容
当然以上都是最最简单的用法
还有很多高级的功能,我们一般写在脚本里面
我曾写过的最复杂的一个脚本,就需要依赖于sed和awk提取需要的信息
month1=$(date -d"yesterday" | awk '{print $2}' | awk 'gsub(/[^[:digit:]]/," ",$0)')
month2=$(date -d"yesterday" | awk '{print $2}')
day=$(date -d"yesterday" | awk '{print $3}' | awk 'gsub(/[^[:digit:]]/," ",$0)')
date="$month1.$day.md"
dateFin=$(echo $date | sed 's/ //g')