当前位置: 首页 > news >正文

linux三剑客基础入门

什么是linux三剑客

指的是linux的三个工具:grep、sed、awk。这三个工具是运维人员、开发或数据分析人员必备的底层技能,可以高效处理海量数据。

工具介绍

grep

作用:找出文本中符合条件的行

语法:

grep "error" asses.log

找出asses.log中包含error的行

常用参数:

参数 作用
-i 忽略大小写
-v 取反(不匹配的行)
-n 显示行号
-r 递归目录
-E 使用扩展正则
-w 精确匹配单词

效果:

grep的局限:

❌ 不能改内容
❌ 不擅长按“列”处理

✔️ 所以需要 sed 和 awk

sed

批量修改的神器,可以对文本进行替换、删除、插入等操作。

常用语法结构:

替换

替换内容并输出,但是不会改变原文件的内容

sed 's/旧内容/新内容/' 文件名
sed 's/http/https/' hello.txt

但是上面这个模式只会替换每一行第一个匹配的内容,如果这一行有多个匹配的内容只会替换第一个:

我们可以指定每个匹配的内容都被替换:

sed 's/http/https/g' hello.txt

但是我们知道上面替换的命令只是匹配内容并返回替换后的的内容,原文并不会被修改,我们可以添加参数直接替换原文件:

sed -i 's/http/https/g' hello.txt

这个时候就不会直接返回替换后的内容而是直接替换,我们需要用cat去查看替换的结果。

删除

可以删除匹配的某行内容

语法:

sed "/chuxue/d" hello.txt

效果:

可以看到其中chuxue这一行内容直接被删除了,不过和替换一样,不会直接修改原文件。

也可以直接指定索引删除哪行到哪行,例如删除第一行到第三行:

sed "1,3d" hello.txt

同样的,你确定需要删除,可以加上参数i:

sed -i "1,3d" hello.txt

只打印特定行

通常情况下sed会输出全部内容,可以通过n参数和p标志来限制输出的内容:

原文:

只查看第10行到第20行的内容。

sed -n "10,20p" hello.txt

awk

awk 的世界里,它默认把一行文字按空格拆分成一列一列:

$1:第 1 列

$2:第 2 列

$NF:最后一列

$0:整行内容

输出第一列:

awk '{print $1}' demo.txt

输出第二列

 awk '{print $2}' demo.txt

注意这里只能使用单引号,不能使用双引号:

输出全部列:

超出的列数则是空白的:

加入条件判断:

输出第一列内容是示例的行:

awk '$1 == "示例" {print $0}' demo.txt

进阶用法

数学运算与统计

awk '{sum += $10} END {print "Total bytes:", sum}' access.log

{sum += $10}:每一行都把第 10 列加到变量 sum 里。

END:等所有行处理完了,再执行最后的操作。

指定分隔符 (-F)

默认 awk 按空格切分。如果处理 /etc/passwd 这种用冒号 : 分隔的文件:

awk -F ":" '{print $1}' /etc/passwd

以上就是对三剑客的基础用法,更详细的使用说明可以上网搜索。

欢迎关注公众号,学习更多有趣的知识!

http://www.jsqmd.com/news/371363/

相关文章:

  • Kubernetes部署Cilium网络插件命令 - wanghongwei
  • 肯尼斯·费雷尔的价值因子研究
  • 【YOLOv12多模态涨点改进】独家创新首发| CVPR 2025 | 引入FDSM频率域动态地选择模块,高效融合红外和可见光多模态特征,精准保留有用信息、抑制冗余与噪声,助力目标检测、图像分割、分类
  • 提示工程架构师实战教程:群体智能提示优化方法论在金融领域应用
  • 【YOLOv12多模态涨点改进】CVPR 2025 | 引入RLAB残差线性注意力块,有效融合并强调多尺度特征,多种创新改进点,助力多模态融合目标检测、图像分割、图像分类,医学图像分割等任务有效涨点
  • Redis在大数据日志处理中的应用:ELK+Redis架构解析
  • 4个领先的大模型微调工具
  • 基于大数据的物联网预测性维护系统设计
  • 10款AI论文写作工具:功能与体验解析
  • 【YOLOv12多模态涨点改进】独家复现创新首发 | CVPR 2025 | 引入 FEFM 频率穷举融合机制和二次创新CFEM交叉融合增强模块,适合红外与可见光融合,多模态融合目标检测、实例分割
  • 市盈率低于15的重要性
  • 毕业论文AI辅助:10大高效工具推荐
  • 提示工程架构师参与指南:开源社区推动Agentic AI可持续发展的6个贡献方向
  • 你的OpenClaw必备的3个组件
  • 构建灵活大数据领域数据架构的方法
  • 【Docker基础篇】Docker入门必看:镜像、容器、仓库的关系,用类比讲得明明白白
  • Agent Lightning:微软开源的框架无关 Agent 训练方案,LangChain/AutoGen 都能用
  • AI助力论文写作:10款实用工具对比
  • 打破人月神话,回归软件工程本质 - A
  • APP开发/微信小程序软件开发服务商/公司测评:2026年五大维度选型指南 - 专业GEO营销推广
  • 【小沐杂货铺】基于Three.js绘制三维管道Pipe(WebGL、vue、react) - 实践
  • 毕业论文必备:10个AI写作工具全面测评
  • 2025.2.11 做题记录
  • 学术写作利器:10款AI工具深度解析
  • Python全栈项目:结合Puppeteer和AI模型管理浏览器
  • 为什么你的提示工程需求总不被用户买账?因为你没做对这3件事!
  • 论文写作AI推荐:10个实用网站详细评测
  • 以理性破迷思,从《人月神话》看项目管理之道 - A
  • 跨越半世纪的启示 —— 重读《人月神话》的思考与收获 - A
  • 2025.2.7 做题记录