文本处理三剑客(grep、sed、awk)

简介: 文本处理三剑客(grep、sed、awk)

一.grep

1.1.grep介绍

20201105132632404.png

1.2.案例介绍

(重)例一:去除文件中的注释与空行

以nginx.conf为例

grep -Ev "^$|#" /etc/nginx/nginx.conf

例二:显示所有行的行号

grep -n “.” /etc/nginx/nginx.conf

二.sed

2.1.sed介绍

20201105151407381.png

2.2.案例介绍

范例文本:

[root@nginx ~]# cat test.txt 
1.dwhabduw
2.dawiofj
3.zckj
4.fjeb
5.sadnkjw

例一:在第二行后添加一行内容

sed "2a 2.1.dwadsa" test.txt

20201105153853292.png

注:i的用法与a相同。

例二:指定行后添加多行内容用“\”隔开

sed "2a 2.1.dwadsa\2.2.dawfsk" test.txt

例三:删除指定行内容

sed “2d” test.txt

例四:删除文本中指定的多行内容(范围)

注:表示从第二行到第四行之间的内容

sed "2,4d" test.txt

(重)例五:替换文本中内容

将文件中所有的1都替换成100

sed "s/1/100/g" test.txt

三.awk

3.1.awk介绍

2020110515565260.png

3.2.案例介绍

测试文件:

nobody:x:99:99:Nobody:/:/sbin/nologin
systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
polkitd:x:999:997:User for polkitd:/:/sbin/nologin
abrt:x:173:173::/etc/abrt:/sbin/nologin
tss:x:59:59:Account used by the trousers package to sandbox the tcsd daemon:/dev/null:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
chrony:x:998:996::/var/lib/chrony:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
nginx:x:997:995:Nginx web server:/var/lib/nginx:/sbin/nologin

例一:显示文件的第二行

[root@nginx ~]# awk "NR==2" test2.txt 
systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin

例二:显示文件的二到四行

[root@nginx ~]# awk "NR==2,NR==4" test2.txt 
systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
polkitd:x:999:997:User for polkitd:/:/sbin/nologin

例三:给文件每行加上行号

[root@nginx ~]# awk '{print NR,$0}' test2.txt 
1 nobody:x:99:99:Nobody:/:/sbin/nologin
2 systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin
3 dbus:x:81:81:System message bus:/:/sbin/nologin
... ...

例四:显示文件的第三列和第五列

注:$NF表示最后一列

[root@nginx ~]# awk -F ":" '{print $3,$5}' test2.txt 
99 Nobody
192 systemd Network Management
81 System message bus
999 User for polkitd
... ...

(重)例五:取出eth0网卡的ip

[root@nginx ~]# ifconfig eth0|awk -F "[ :]+" 'NR==2{print $3}'
192.168.1.5


目录
相关文章
|
XML Java 数据格式
|
Java 数据库 开发者
"揭秘!SpringBoot+事务钩子,如何携手打造零差错、秒级响应的高效支付系统,让你的业务飞起来!"
【8月更文挑战第11天】构建高效稳定的支付系统时,Spring Boot凭借其快速开发与丰富生态成为优选框架。通过集成Spring事务管理抽象,@Transactional注解简化了数据库事务处理。针对复杂业务,可利用`TransactionSynchronizationManager`和`TransactionSynchronization`接口自定义事务钩子函数,在事务不同阶段执行特定逻辑,如支付成功或失败时的通知,确保数据一致性与业务完整性。
269 4
|
Linux 编译器 C语言
Linux内核对GCC版本的检测
Linux内核对GCC版本的检测
|
安全 Java API
Java 8 流库的魔法革命:Filter、Map、FlatMap 和 Optional 如何颠覆编程世界!
【8月更文挑战第29天】Java 8 的 Stream API 通过 Filter、Map、FlatMap 和 Optional 等操作,提供了高效、简洁的数据集合处理方式。Filter 用于筛选符合条件的元素;Map 对元素进行转换;FlatMap 将多个流扁平化合并;Optional 安全处理空值。这些操作结合使用,能够显著提升代码的可读性和简洁性,使数据处理更为高效和便捷。
456 0
|
JavaScript 数据安全/隐私保护
PostMan高级用法,接口MD5+Secret签名Sign
PostMan高级用法,接口MD5+Secret签名Sign
1039 0
|
JavaScript Java 测试技术
基于ssm+vue.js+uniapp小程序的技术疫情防控自动售货机系统附带文章和源代码部署视频讲解等
基于ssm+vue.js+uniapp小程序的技术疫情防控自动售货机系统附带文章和源代码部署视频讲解等
235 0
基于ssm+vue.js+uniapp小程序的技术疫情防控自动售货机系统附带文章和源代码部署视频讲解等
|
人工智能
指针-田忌赛马
指针-田忌赛马
197 0
|
开发框架 监控 IDE
软件测试|后端web开发框架——Spring Boot
软件测试|后端web开发框架——Spring Boot
软件测试|后端web开发框架——Spring Boot
南大《探索数据的奥秘》课件示例代码笔记15
南大《探索数据的奥秘》课件示例代码笔记15
93 0