打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
玩转Linux命令之三剑客
玩转Linux命令之三剑客

1 grep命令

功能说明
grep(Global Regular Expression Print)是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。其格式如下
grep[选项]pattern file

grep命令的选项及其说明如下

选项说明
-v过滤指定字符串内容的行
-i不区分大小写
-E过滤多个字符串
-o输出多个精确匹配的字符,而不是整行

使用案例

[root@tony data]# vim teach.txt #创建测试数据(编辑测试数据内容)Program languageJavaCC++PHPPythonRubyOSWindowswindowsLinuxMacUnixAndroidIOS

过滤掉指定的字符串(“windows”)匹配的行并忽略大小写后将结果输出

[root@tony data]# grep -vi 'windows' teach.txt #忽略大小写并过滤包含Windows字符串的行Program languageJavaCC++PHPPythonRubyOSLinuxMacUnixAndroidIOS

过滤掉多个匹配字符串内容(‘Android|IOS’)的行并将结果输出

[root@tony data]# grep -vE 'Android|IOS' teach.txt  #过滤Android和IOS字符串对应的行Program languageJavaCC++PHPPythonRubyOSWindowswindowsLinuxMacUnix

查找指定的进程

[guanglei@tony data]$ ps -ef|grep ssh #查找SSH远程加密连接的进程root       1403      1  0 09:54 ?        00:00:00 /usr/sbin/sshdroot       1509   1403  0 10:00 ?        00:00:00 sshd: guanglei [priv]guanglei   1511   1509  0 10:00 ?        00:00:00 sshd: guanglei@pts/1guanglei   1654   1512  0 10:21 pts/1    00:00:00 grep ssh

2 sed命令

功能说明
sed主要用来编辑文件,简化对文件的反复操作,编写转换程序等,擅长取行。其格式如下
sed [选项] [n1,[n2]][function],n1,n2表示选择行数的区间

选项说明
-n取消默认输出
-i改变文件内容

fuction:
d:删除
i:插入
p:打印
s:替换

使用案例

查找匹配字符串内容的行

[root@tony data]# sed -n '/J/p' teach.txt  #匹配指定字符串的行   Java

删除匹配字符串内容的行

[root@tony data]# sed -i '/Python/d' teach.txt        [root@tony data]# cat teach.txt Program languageJavaCC++PHPRubyOSWindowswindowsLinuxMacUnixAndroidIOS[root@tony data]# 

实现文件内容的替换

[root@tony data]# sed -i 's#Android#android6.0#g' teach.txt  #将Android替换成Android6.0[root@tony data]# cat teach.txt Program languageJavaCC++PHPRubyOSWindowswindowsLinuxMacUnixandroid6.0IOS

实现指定文件内容的查找并替换

[root@tony data]# mkdir -p  grandparent/parent/son #创建三级目录[root@tony data]# tree #查看目录树结构.├── grandparent│   ├── parent│   │   ├── son│   │   │   └── test.txt│   │   └── test.txt│   └── test.txt└── teach.txt[root@tony data]# echo "This is Linux Operator System" >grandparent/test.txt #创建测试数据[root@tony data]#  echo "This is Linux Operator System" >grandparent/parent/test.txt[root@tony data]#  echo "This is Linux Operator System" >grandparent/parent/son/test.txt[root@tony data]# find ./ -type f -name "test.txt"|xargs sed -i 's#Linux#Unix#g' #将匹配的文件内容字符串转换为Unix[root@tony data]# cat grandparent/test.txt #查看修改结果This is Unix Operator System

获取指定区间行数的内容

[root@tony data]# sed -n '2,5p' teach.txt Program languageJavaCC++

3 awk命令

awk是一种程序设计语言,允许创建简短的程序,这些程序读取输入文件,为数据排序,处理数据,对输入执行计算以及生成报表。其格式如下

awk ‘{pattern +action}’ {fileNames}

选项说明
-F指定分割的内容

内置变量
NR: 表示行号

使用案例

使用awk实现获取指定区间的内容

[root@tony data]# awk '{if(NR<5&&NR>=2)printf $1 "\n"}' teach.txt  ProgramJavaC
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
Shell中的grep、awk和sed的常用命令和语法
Linux必学技能:文本操作三剑客(awk/sed/grep)应用实例
linux三剑客(grep、sed、awk)
第十三章 正则表达式
iptables简单防攻击脚本(自动过滤白名单)
UC头条:shell三剑客过滤文件内字符串长度输出
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服