前言

在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

支持的模式匹配

Shell命令之文本操作的更多相关文章

  1. HDFS shell命令行常见操作

    hadoop学习及实践笔记—— HDFS shell命令行常见操作 附:HDFS shell guide文档地址 http://hadoop.apache.org/docs/r2.5.2/hadoop ...

  2. Hadoop HDFS的shell(命令行客户端)操作实例

    HDFS的shell(命令行客户端)操作实例 3.2 常用命令参数介绍 -help 功能:输出这个命令参数手册 -ls                  功能:显示目录信息 示例: hadoop fs ...

  3. #实现详细记录登陆过系统的用户,IP地址,shell命令及详细操作的时间

    //实现详细记录登陆过系统的用户,IP地址,shell命令及详细操作的时间 将下面代码加入/etc/profile //history USER_IP = who -u am i 2> /dev ...

  4. hadoop2.5.2学习及实践笔记(五)—— HDFS shell命令行常见操作

    附:HDFS shell guide文档地址 http://hadoop.apache.org/docs/r2.5.2/hadoop-project-dist/hadoop-common/FileSy ...

  5. Linux命令-文件文本操作grep

    文件文本操作 grep 在文件中查找符合正则表达式条件的文本行 cut 截取文件中的特定字段 paste 附加字段 tr 字符转换或压缩 sort 调整文本行的顺序,使其符合特定准则 uniq 找出重 ...

  6. shell命令技巧——文本去重并保持原有顺序

    简单来说,这个技巧相应的是例如以下一种场景 假设有文本例如以下 cccc aaaa bbbb dddd bbbb cccc aaaa 如今须要对它进行去重处理.这个非常easy,sort -u就能够搞 ...

  7. shell 命令合并文本

    之前想把代码打印出来看来着,后来合并完之后放在word里发现有2000多页,然后放弃了~anyway,这个命令还是挺有用的. 比如我有文本a001.dat, a002.dat, a003.dat .. ...

  8. linux shell命令行下操作mysql 删除mysql指定数据库下的所有表--亲测成功百分百测试通过--绝对可靠

    1,在shell提示符下查看mysql指定数据库下的表等数据

  9. Linux Shell 命令--grep

    从这篇开始,是文本内容操作,区别于文本操作. shell,perl,python,一直都是文本操作的专家语言,而我们今后学习的的将是shell的噱头--文本操作.下面提到最常见的一个: grep 这算 ...

随机推荐

  1. db2用户权限

    前言:     DB2数据库权限分为实例级权限(SYSADM.SYSCTRL.SYSMAINT.SYSMON)和DB2数据库级权限(DBAMD.LOAD).DB2中用户所拥有的权限主要考虑三个方面:实 ...

  2. 使用SpringMVC的@CrossOrigin注解解决跨域请求问题

    跨域问题,通俗说就是用ajax请求其他站点的接口,浏览器默认是不允许的.同源策略(Same-orgin policy)限制了一个源(orgin)中加载脚本或脚本与来自其他源(orgin)中资源的交互方 ...

  3. 44、WebStrom下载和破解

    WebStrom下载地址: http://www.pc6.com/mac/112553.html WebStrom 2017激活破解(http://blog.csdn.net/it_talk/arti ...

  4. 2018.11.08 NOIP模拟 水管(简单构造)

    传送门 仔细读题会发现只要所有点点权之和等于0一定有解. 如何构造? 直接当做树来构造就行了,非树边都赋值成0就行. 代码

  5. JSON.parse和JSON.stringify的区别

    JSON.stringify()的作用是将 JavaScript 值转换为 JSON 字符串, 而JSON.parse()可以将JSON字符串转为一个对象. 简单点说,它们的作用是相对的,我用JSON ...

  6. 常用.bat

    休眠.bat rundll32 powrprof.dll,SetSuspendState 常用.bat start /d  "d:\Program Files (x86)\Tencent\T ...

  7. PHP Libevent扩展安装及应用

    http://www.phpddt.com/php/libevent.html PHP Libevent扩展安装及应用

  8. 师弟推荐软件-/mathpix

    将公式扫描为latex:https://mathpix.com/api.html mathtype与latex转换:http://www.mathtype.cn/jiqiao/zhuanhua-gon ...

  9. poj 1068 Parencodings 模拟题

    Description Let S = s1 s2...s2n be a well-formed string of parentheses. S can be encoded in two diff ...

  10. CentOS 网络设置修改 2

    一.CentOS 修改IP地址 修改对应网卡的IP地址的配置文件# vi /etc/sysconfig/network-scripts/ifcfg-eth0 修改以下内容 DEVICE=eth0 #描 ...