搞Linux开发,经常会遇到对文本内容进行查找、编辑甚至进行某些分析处理的情况,比如说添加开机启动项、添加全局环境变量、定制化显示等。如果这些都采用Python脚本进行处理,那么未免有些小题大做。
这里主要跟大家介绍一下,Linux处理文本的三剑客:grep、sed和awk。有了这三个命令,妈妈再也不用担心我的文本处理啦~
grep
grep命令主要用于文本内容的查找。它支持正则表达式查找,命令格式为:
grep [option] pattern filename
比如说,在filename文本中查找包含”text”的行:
grep "text" filename
这条命令默认只输出匹配的文本行,当option为-o时,命令行只输出匹配的文本,而option为-v时,命令行只输出没有匹配的文本行。
另外,如果查找运行中关于mysql的进程,可以在终端输入:
ps -ef | grep mysql
sed
sed命令主要用于文本内容的编辑。默认只处理模式空间,不处理原数据,而且sed是针对一行行数据来进行处理的。
sed的命令格式为:
sed [option] 'command' filename
其中option常用选项有以下:
-n:使用安静(silent)模式。
在一般sed的用法中,所有来自stdin的数据一般都会被列出到终端上。
但如果加上-n参数后,则只有经过sed特殊处理的那一行(或者动作)才会被列出来。