【22】linux进阶——文本处理工具:cut、awk、sed

大家好,这里是天亮之前ict,本人网络工程大三在读小学生,拥有锐捷的ie和红帽的ce认证。每天更新一个linux进阶的小知识,希望能提高自己的技术的同时,也可以帮助到大家

另外其它专栏请关注:

锐捷数通实验:锐捷数通实验

网络工程师成长日志:网络工程师成长日志

it自动化运维:it自动化运维

      今天主要介绍文本处理工具cut、sed、awk,用好这三个工具,能方便你在海量数据中提取你想要的数据部分。

目录

一 cut

1.1参数

1.2案例

二 sed 

2.1 参数

2.2 案例

三 awk

3.1参数

3.2范例


一 cut

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

1.1参数

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

1.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命令处理缓冲区间中的内容,处理完后,把缓冲区中的内容送往屏幕。接着处理下一行,这样不断重复直到文件末尾。文件内容并没有改变,除非你使用重定向存储输出。

2.1 参数

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

2.2 案例

在第一行下面添加了lmy6666666 

sed ‘1a fdasfasdf’ 文件路径

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

在第一行上方添加lmy66666666 

sed ‘1i fdasfasdf’ 文件路径

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

sed ‘1p’ 文件路径

三 awk

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

3.1参数

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

3.2范例

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

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

 经典案例,列出ip地址

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

 “生活的方向无论你如何选择都会后悔,人总向往没经历过的生活”

猜你喜欢

转载自blog.csdn.net/weixin_51338719/article/details/130405493