【Linux-三剑客grep/sed/awk】

■ grep

grep是一个可以利用”正则表达式”进行”全局搜索”的工具
grep会在文本文件中按照指定的正则进行全局搜索,并将搜索出的行打印出来。

命令描述
grep “pattern” file.txt在 file.txt 中搜索 “pattern”。
grep -i “pattern” file.txt忽略大小写搜索 “pattern”。
grep -n “pattern” file.txt显示匹配行的行号。
grep -r “pattern” /path/to/directory递归搜索指定目录。
grep “regex_pattern” file.txt使用正则表达式搜索。
grep -v “pattern” file.txt查找不包含 “pattern” 的行。
grep -c “pattern” file.txt显示匹配的行数。
grep “pattern” file1.txt file2.txt同时搜索多个文件。
grep -A 2 -B 2 “pattern” file.txt显示匹配行的上下文行。
grep “pattern” *在当前目录中的所有文件中搜索 “pattern”。

■ sed

sed 命令的一些常见用法,用于替换、删除、追加文本等文本编辑操作。
sed 是一种强大的文本处理工具,可以根据需要进行高度定制。

命令描述示例
sed ‘s/old/new/’ file.txt替换文本文件中的第一个匹配行的 “old” 为 “new”。sed ‘s/apple/orange/’ fruits.txt
sed ‘s/old/new/g’ file.txt替换文本文件中所有匹配行的 “old” 为 “new”。sed ‘s/apple/orange/g’ fruits.txt
sed ‘2s/old/new/’ file.txt仅替换文件中的第2行匹配的 “old” 为 “new”。sed ‘2s/apple/orange/’ fruits.txt
sed ‘1,3s/old/new/’ file.txt替换文件中第1行到第3行的匹配的 “old” 为 “new”。sed ‘1,3s/apple/orange/’ fruits.txt
sed ‘/pattern/s/old/new/’ file.txt仅替换包含 “pattern” 的行中的 “old” 为 “new”。sed ‘/apple/s/red/g’ fruits.txt
sed ‘/pattern/!s/old/new/’ file.txt仅替换不包含 “pattern” 的行中的 “old” 为 “new”。sed ‘/apple/!s/red/g’ fruits.txt
sed ‘s/old/new/g’ file.txt > newfile.txt将替换后的文本写入新文件。sed ‘s/apple/orange/g’ fruits.txt > newfruits.txt
sed -i ‘s/old/new/g’ file.txt原位编辑(直接修改源文件)并替换 “old” 为 “new”。sed -i ‘s/apple/orange/g’ fruits.txt
sed ‘/^#/d’ file.txt删除文件中以 “#” 开头的行。sed ‘/^#/d’ config.txt
sed ‘/pattern/r file2.txt’ file1.txt将 file2.txt 中的内容附加到包含 “pattern” 的行。sed ‘/apple/r fruits.txt’ drinks.txt

■ awk

awk 命令的一些常见用法,用于处理结构化文本数据、计算、过滤、替换和输出。awk 是一个强大的文本处理工具,可以根据需要进行高度定制。

命令描述示例
awk ‘{print $1}’ file.txt打印每行的第一个字段(默认字段分隔符为空格)。awk ‘{print $1}’ data.txt
awk ‘/pattern/’ file.txt打印包含 “pattern” 的行。awk ‘/apple/’ fruits.txt
awk ‘{print NF}’ file.txt打印每行的字段数(NF 表示字段数)。awk ‘{print NF}’ data.txt
awk -F’:’ ‘{print $1}’ file.txt指定字段分隔符为冒号(:)并打印第一个字段。awk -F’:’ ‘{print $1}’ passwd.txt
awk ‘{sum+=$1} END {print sum}’ file.txt计算第一个字段的总和并打印。awk ‘{sum+=$1} END {print sum}’ numbers.txt
awk ‘$3 >= 50 {print $1, $3}’ file.txt打印第一个和第三个字段,如果第三个字段大于等于 50。awk ‘$3 >= 50 {print $1, $3}’ scores.txt
awk ‘/pattern/ {count++} END {print count}’ file.txt统计包含 “pattern” 的行数。awk ‘/apple/ {count++} END {print count}’ fruits.txt
awk ‘{gsub(“old”, “new”); print}’ file.txt替换所有行中的 “old” 为 “new” 并打印。awk ‘{gsub(“apple”, “orange”); print}’ fruits.txt
awk -v var=“value” ‘{print var, $1}’ file.txt使用变量值在输出中插入数据。awk -v fruit=“apple” ‘{print fruit, $1}’ fruits.txt
awk ‘NR > 1’ file.txt打印除了第一行以外的所有行。awk ‘NR > 1’ data.txt
  • 25
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

光芒Shine

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值