编写shell脚本(二)——文本处理工具

       在日常工作和学习中,文本处理工具给我们提供了较大的便利,今天主要说一下文本处理工具,这个结合shell脚本一块,linux系统中文本处理工具包括:grep、egrep、cut、sed、awk。

目录

一 grep

1.1参数

1.2范例

 二 egrep

 三 cut

3.1参数

3.2案例

四 sed 

4.1 参数

4.2 案例

 五 awk

5.1参数

5.2范例


一 grep

1.1参数

grep的能力是超级全面的,grep有几个参数,给大家总结一下:

参数功能
-i不区分大小写
-v反查,比如搜索不含某字符的行
^xxx以xxx作为关键字行首的行
xxx$以xxx作为关键字行尾的行
-A 行数显示正则表达式匹配项之后的行数
-B 行数显示正则表达式匹配项之前的行数
-n查找并显示行号

1.2范例

搜索包含lmy字符串的行

grep 关键字 文件路径

 查看不包含root关键字的行

grep -v 关键字 文件路径

 grep -n 关键字 文件路径

查找后并显示行号

查找以xxx关键字为行首的行

grep ^关键字 文件路径

 

 查看以xxx关键字为行尾的行

grep bash$ 文件路径

 

 -A选项,是 After 的缩写,表示除了展示匹配行之外,还要展示出匹配行下面的若干行。而示例中的 -A 1 则表示还展示匹配行下面一行的内容。

 

 -B选项,是 Before 的缩写,表示除了展示匹配行之外,还要展示出匹配行上面的若干行。而示例中的 -B 1 则表示还展示匹配行上面一行的内容。

 

 经典案例:

查看某配置文件除去注释和多余的空行的内容

grep -v -e ‘#’ -e '^$' /etc/ssh/sshd_config

 二 egrep

egrep执行效果与"grep-E"相似,使用的语法及参数可参照grep指令,与grep的不同点在于解读字符串的方法。egrep可以搜索字符串包含linux或123的字符

例如:

 三 cut

cut的工作就是"剪",具体的说就是在文件中负责剪切数据用的。cut命令从文件的每一行剪切字节、字符和字段,并将这些字节,字符和字段输出。

3.1参数

参数功能
-f列号,取第几列
-d分隔符,按照指定的分割符分割列,把一行拆成N多列
-c按字符进行切割,后加n,表示取第n列,比如:-c 1

3.2案例

列出/etc/passwd文件第一列的信息

cut -d ":" -f 1 /etc/passwd   //以“:”为分隔符,将第一个字符输出

 

列出/etc/passwd文件第1,2,3列的信息

 cut -d ":" -f 1,2,3 /etc/passwd

 

四 sed 

      sed是一种流编辑器,它一次处理一行内容。处理时,把它处理的行存储在临时缓冲区中,称为”模式空间“,接着用sed命令处理缓冲区间中的内容,处理完后,把缓冲区中的内容送往屏幕。接着处理下一行,这样不断重复直到文件末尾。文件内容并没有改变,除非你使用重定向存储输出。

4.1 参数

参数意义
na在当前第n行之下
ni在当前第n行之上
nd在当前第n行删除
s查找并替换

4.2 案例

在第一行下面添加了lmy6666666 

sed ‘1a fdasfasdf’ 文件路径

注意的是:原文件没有发生任何改变

在第一行上方添加lmy66666666 

sed ‘1i fdasfasdf’ 文件路径

 

 列出/etc/passwd文件处理复制第一行的信息

sed ‘1p’ 文件路径

 

 五 awk

一个强大的文本分析工具,把文件逐行读入,以空格为默认分隔符将每行切片,切开的部分再进行分析处理。

5.1参数

参数意义
-F指定分割符 -F “;” 'print 打印输出'
NR代表行
NF代表列

5.2范例

awk -F “:" '{print$1}' /etc/passwd    //以:为分隔符输出第一列

 awk -F “:" 'NR==1{print$1}' /etc/passwd //以:分隔符输出第一行第一列

 

 经典案例,列出ip地址

ifconfig 接口名 | grep netmask | awk 'NR==1{print$2}' 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

天亮之前_ict

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值