linux命令之grep、sed和awk
一、grep
参数: -I :忽略大小写 -c :打印匹配的行数 -l :从多个文件中查找包含匹配项 -v :查找不包含匹配项的行 -n:打印包含匹配项的行和行标 grep -n 'push' workLog.txt 文件中包含push的行: cat workLog.txt |grep -n '红包'|grep '绑定' 即包含红包又包含绑定 cat workLog.txt |grep -n '红包'|grep -v '绑定' 包含红包但不包含绑定 cat workLog.txt |grep -n '^11' 以11开头的行 cat workLog.txt |grep -n '红包$' 以红包结束的行 grep '[239].' data.doc #输出所有含有以2,3或9开头的,并且是两个数字的行 grep '^48' data.doc #不匹配行首是48的行 grep -c 'push' workLog.txt 统计包含push的次数 grep --color=auto 'push' workLog.txt 对搜索词显示颜色 grep -v 'a' test.txt 反向查询 grep 'test' d* 显示所有以d开头的文件中包含test的行 grep 'test' aa bb cc 显示在 aa bb cc 文件中包含test的行 grep '[a-z]\{5}\' aa 显示所有包含字符串至少有5个连续小写字母的串
二、sed
1.选项与参数: -n :使用安静(silent)模式。在一般 sed 的用法中,所有来自 STDIN 的数据一般都会被列出到终端上。但如果加上 -n 参数后,则只有经过sed 特殊处理的那一行(或者动作)才会被列出来。 -e :直接在命令列模式上进行 sed 的动作编辑; -f :直接将 sed 的动作写在一个文件内, -f filename 则可以运行 filename 内的 sed 动作; -r :sed 的动作支持的是延伸型正规表示法的语法。(默认是基础正规表示法语法) -i :直接修改读取的文件内容,而不是输出到终端。 2.function: a :新增, a 的后面可以接字串,而这些字串会在新的一行出现(目前的下一行)~ c :取代, c 的后面可以接字串,这些字串可以取代 n1,n2 之间的行! d :删除,因为是删除啊,所以 d 后面通常不接任何咚咚; i :插入, i 的后面可以接字串,而这些字串会在新的一行出现(目前的上一行); p :列印,亦即将某个选择的数据印出。通常 p 会与参数 sed -n 一起运行~ s :取代,可以直接进行取代的工作哩!通常这个 s 的动作可以搭配正规表示法! 3.示例 sed '2,3d' user1 删除2~3行 sed '3,$d' 删除3到最后一行 sed '2i drink tea' user1 在第二行之前插入 sed '2,3c No 2-5 number' user1 把2~3行替换成‘2-5 number’ sed -n '2,4p' user1 展示2~4行 sed -n '/wang/p' user1 查找并显示包含'wang'的行 sed -n '/aa/{s/aa/akk/};p' user1 查找并替换 sed -i 's/^M//g' loss910.txt 去掉windows文件中的^M字符,不能直接粘贴^M,ctrl+v,ctrl+m sed -e '3,$d' -e 's/bash/blueshell/' filename sed -e '4a\newLine' testfile 在testfile文件的第四行后添加一行 sed '1,20s/old/new/g' filename sed 以行为单位处理文件
三、awk
awk 比sed强的地方在于不仅能以行为单位还能以列为单位处理文件。 awk '{print $1,$2}' communitypostapp.txt 打印第一列和第二列 awk '$1>200' communitypostapp.txt 打印第一列大于200的行 awk '$9~/2016-10-01/' communitypostapp.txt 大于第九列等于2016-10-01的行 awk '{$2="";print $0}' appbusiness1205.txt 删除第二列 echo "aaa 5 70bbb 11 75ccc 50 60" | awk '{ if( $2 >=10 && $2<=20) {print $0} }' 第二列的值大于等于10小于等于20的打印出来 cut 命令也可以以指定分隔符的方式取出一个文件中一个或多个字段 cut -d : -f 1,5 /etc/passwd 以:分隔符取出第1,5两个字段 secureCRT颜色设置 选项-会话选项-终端-仿真:勾选ANSI颜色 选项-会话选项-终端-外观:勾选使用颜色
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端