三剑客(sed、grep、awk)

1 sed

Linux 系统上非常强大和常用的文本处理工具,用于对文本的转换、替换等操作

使用

sed 配合有一下这些参数选项,太多了不用记忆,只需要知道sed主要是对文本行处理的工具,通过sed命令对指定行文本操作即可,具体命令可以AI搜

通用参数

参数名称解释
-n取消sed的默认输出,常于sed内置p名称一起使用
-i将结果写入文件,不用-i
-e多次编辑,不用采用管道符
-r支持正则

内置参数

参数名称解释
aappend,文本追加
ddelete,删除匹配行
iinsert,指定行前插入
pprint,打印
s/正则/替换内容/g匹配后替换

常用sed如下

sed '/delete/p' a.txt -n
sed '/catch/d' a.txt -i
sed 's/FileUtil/my/g' a.txt -i 
多个替换
sed -e 's/my/me/g' -e 's/delete/remove/g' a.txt -i
sed '4,$p' a.txt -n
sed '3a imasusy' a.txt -i

2 awk

​ 是另一个的文本处理工具,主要对于文本列操作。能够执行多种操作,如打印、过滤、计算、格式化等。可以理解为awk是一个简单编程语言,类似于shell

使用

awk 配合有一下这些参数选项,不用记忆,具体命令可以在使用时去AI搜

  • -F:指定字段分隔符。
  • -f:从文件中读取 awk 的脚本。
  • -v var=value:定义 awk 的变量。

预变量

  • $0:整行内容。
  • $1, $2, …:第 1、第 2 列等字段。
  • NF:当前行的字段数。
  • NR:当前行的行号。
  • FS:字段分隔符。
  • RS:记录分隔符。
  1. 打印操作
awk '{print $1, $3}' file

打印每行的第 1 和第 3 个字段。

  1. 条件过滤
awk '$2 > 10 {print $1, $2}' file

只打印第 2 列大于 10 的行的第 1 和第 2 列。

  1. 计算
awk '{sum += $1} END {print sum}' file

计算第 1 列的总和并打印。

  1. 模式匹配
awk '/pattern/ {print $0}' file

打印包含匹配模式 pattern 的行。

  1. 格式化输出
awk '{printf "%-10s %s\n", $1, $2}' file

格式化输出第 1 和第 2 个字段。

  1. 循环处理
awk '{for (i=1; i<=NF; i++) print $i}' file

每行逐个打印字段。

3 grep

是在 Linux 系统中非常常用的文本搜索工具,用于从文件或标准输入中查找匹配指定模式的行

使用

常用选项

  • -i:忽略大小写进行匹配。
  • -v:反向查找,只输出不匹配 PATTERN 的行。
  • -r:递归搜索子目录中的文件。
  • -n:显示匹配行的行号。
  • -E:使用扩展的正则表达式语法 (支持 +, ?, {} 等)。
  • -o:只输出匹配的部分。

假设有一个名为 example.txt 的文件:

$ cat example.txt
Hello, World!
This is a test file.

通过 grep 查找包含 Hello 的行:

$ grep "Hello" example.txt
Hello, World!

查找不包含Hello的行

$ grep -v "Hello" example.txt
This is a test file.

查找时忽略大小写

$ grep -i "HELLO" example.txt
Hello, World!

使用正则表达式查找以大写字母开头的行:

$ grep "^[A-Z]" example.txt
Hello, World!

结合管道使用

grep 命令通常与其他命令结合使用,例如:

$ ps aux | grep "chrome"

上述命令将列出所有包含 chrome 关键字的进程

4 总结

  • sed和grep主要对于行操作,awk主要对于列操作
  • 三个命令配合的选项参数太多,其中grep记住 -v和-i即可,其他命令使用时AI搜即可,但要清楚每个命令的作用
  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值