Linux系统文本处理三大神器 grep & sed & awk

grep、sed、awk是Linux/Unix系统中非常强大的文本处理工具,它们各有侧重,但都基于正则表达式来操作文本。下面是它们的基本用法概述:

1. grep(Global Regular Expression Print)

用途:grep 主要用于搜索文件中符合特定模式(正则表达式)的行,并打印出来。 

基本语法

grep [选项] '模式' 文件名

常用选项:

  • -i:忽略大小写。
  • -v:反向匹配,打印不包含模式的行。
  • -n:打印匹配行的行号。
  • -r 或 -R:递归搜索目录下的文件。

示例

  • 打印包含 “example” 字符串的行(不区分大小写):
grep -i 'example' myfile.txt

2. sed(Stream Editor)

用途:sed 是一个流编辑器,主要用于自动编辑一个或多个文件、标准输入数据,可以进行查找、替换、删除、添加等操作。

 基本语法

sed [选项] '命令' 文件名

常用命令:

  • s/原字符串/新字符串/:替换操作,g 选项表示全局替换。
  • d:删除匹配到的行。
  • p:打印匹配到的行。

示例

  • 将文件中所有 “old” 替换成 “new”:
sed 's/old/new/g' myfile.txt

3. awk

用途:awk 是一种编程语言,设计用于文本处理和数据提取,可以进行复杂的文本分析和报告生成。 

基本语法

awk [选项] '模式 { 动作 }' 文件名

常用操作:

  • NR:行号。
  • print:打印指定内容。
  • FS:输入字段分隔符,默认为空格。
  • $1$2, …:分别代表每行的第一个、第二个…字段。

示例

  • 打印文件的第二列:
awk '{print $2}' myfile.txt
  • 根据条件打印行:
awk '$3 > 100' myfile.txt  # 打印第三列大于100的行

原文始发于微信公众号(云网数端):Linux系统文本处理三大神器 grep & sed & awk

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/291379.html

(0)
追风少年潇歌的头像追风少年潇歌

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!