Shell命令之文本操作

前言

在Linux中,文本处理操作是最常见的,应用非常广泛,如果能熟练掌握,可以大大提高开发效率。
awk/sed/grep是文本操作领域的“三剑客”,学会了这3个命令就可以应对绝大多数文本处理场景。这里,不对这三个命令进行过多的冗余描述,只是记录最常见的几种用法,起个抛砖引玉的作用。详细的文档还请参考官方文档。
特长:
grep 更适合单纯的查找和匹配文本
sed  更适合编辑匹配到的文本,如文本替换
awk 更适合格式化文本,对文本进行比较复杂格式处理
三个命令有些功能是重合的,可以灵活选用。

grep

grep命令最常用,非常适合查找和匹配。结合管道运算符,可以达到非常好的效果。

常用场景:

cat a.txt |grep -i "target"

-i : 忽略大小写。

grep "target" /usr1/your_dir -nR
全局文件内搜索查找,非常实用。
find . -name CMakeLists.txt | xargs grep -i "target_link"

在当前目录下的所有CMakeLists.txt文件中,搜索出所有的“target_link”关键字。

在shell列表中,搜索某个item:

if echo "${BUILD_LIST[@]}" | grep -w "$CPU_TYPE" &>/dev/null; then
  echo "found in list"
fi

sed

未完待续

awk

语法原型:

awk [options] 'program' file1, file2,...

对于上述语法中的program来说,又可以细分成pattern和action,也就是说,awk的基本语法格式如下:

awk [options] 'Pattern{Action}' file

 

支持的模式匹配

 

 

 

posted @ 2019-04-24 22:56  琅琊散人  阅读(588)  评论(0编辑  收藏  举报