linux中文本处理三剑客

正则表达式(Regular Expression,):
元字符:
. 任意单个字符
表示字符个数的元字符:
* 匹配其前面的字符任意次
如:a*b 则b,ab aab aaab都可以  但acb不可以
.* 任意长度的任意字符
\? 匹配其前面的字符1次或0次
\{m,n\}:匹配其前面的字符至少m次,至多n次

位置锚定:
^:锚定行首,此字符后面的任意内容必须出现在行首
$:锚定行尾,此字符前面的任意内容必须出现在行尾
^$:空白行

\<或\b:锚定词首,其后面的任意字符必须作为单词的首部出现
\>或\b:锚定词尾,其前面的任意字符必须作为单词的尾部出现

分组:

\(\)
     \(ab\)*

匹配ip地址
ifconfig | egrep --color '(\<([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\>\.){3}\<([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\>'
grep 文本过滤器

grep语法

grep 'pattern' input_file ...
grep:根据模式搜索文本,并将符合模式的文本行显示出来。
grep 【option】 pattern 【file】
option: 
-i 忽略匹配字符的大小写      
--color 将匹配的字符以高亮颜色标记出来
-v 显示没有被匹配的行 
-E 使用扩展正则表达式  
grep -A 2 ‘cord id’ /proc/cpuinfo  
-C  前后行也会显示
grep -E = egrep
sed 流编辑器

sed语法

sed :模式空间
默认不编辑原文件,仅对模式空间中的数据做处理,而后,处理结束后,将模式空间打印出来
用法:
 sed [option] 'AddressCommand' file ...
option:
      -n 静默模式,不显示默认空间的行
      -i 直接修改原文件
      -e SCRIPF  -e SCRIPT 可以

Address:
1.StartLine,Endline
比如:1,100
$:最后一行
2./RegExp/
     /^root/
3./pattern1/,/pattern2/
     第一次被pattern1匹配的行开始,至第二次被pattern2匹配到的行.结束
4.LineNumber
     指定的行
5.StartLine,+N
     从startLine开始,向后的N行

Command:
     d:删除符合条件的行;
     p:显示符合条件的行
     a\string :在指定的行后面追加新行,内容为string
          \n 可以用于换行
     i\string 在指定的行前面
     r FILE 将指定的文件的内容添加至符合条件的行处
     w FILE 将地址指定范围内的行另存至指定的文件中
     s/pattern/string/  修饰符:查找并替换,默认只替换每行中第一次被模式匹配到的字符串
     加修饰符
        g: 全局替换
        i: 忽略字符大小写
     

     s///: s###, s@@@   
        \(\), \1, \2
例如:
    l..e: like-->liker
          love-->lover

          like-->Like
          love-->Love

    &: 引用模式匹配整个串
awk:报告生成器,格式化以后显示
AWK a.k.a. Aho, Kernighan and Weinberger
版本:
1、new awk: nawk
2、gawk, awk
语法:
# awk [options] 'script' file1 file2, ...
# awk [options] 'PATTERN { action }' file1 file2, ...
awk的输出:
一、print
print的使用格式:
    print item1, item2, ...
要点:
1、各项目之间使用逗号隔开,而输出时则以空白字符分隔;
2、输出的item可以为字符串或数值、当前记录的字段(如$1)、变量或awk的表达式;数值会先转换为字符串,而后再输出;
3、print命令后面的item可以省略,此时其功能相当于print $0, 因此,如果想输出空白行,则需要使用print "";
例子:
# awk 'BEGIN { print "line one\nline two\nline three" }'
awk -F: '{ print $1, $3 }' /etc/passwd
二、awk变量
2.1 awk内置变量之记录变量:
FS: field separator,读取文件本时,所使用字段分隔符;
RS: Record separator,输入文本信息所使用的换行符&#x
  • 5
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值