鸟叔的Linux私房菜补充

Linux“三剑客”:grep,awk,sed

grep

在这里插入图片描述

  • grep -i 不区分大小写
    在这里插入图片描述
  • grep -n 显示行号
    在这里插入图片描述
  • grep -c 计算多少行包含指定的字符串
    在这里插入图片描述
  • grep -Bn -Am 显示匹配行的前n行,后m行
    在这里插入图片描述
  • grep -v反向查找,查找不包含某个字符串的行
    在这里插入图片描述
  • grep -e pat1 -e pat1 …匹配满足多个条件之一的行,pat1,pat2之间是或的关系
    在这里插入图片描述
  • grep -E 使用扩展的正则表达式进行查找
    在这里插入图片描述
awk

在这里插入图片描述
在这里插入图片描述

awk ‘[pattern]{action}’ filename #必须使用单引号

在这里插入图片描述

  • awk -F 指定分割符,默认分割符是空格

在这里插入图片描述

  • awk -v 设置变量

在这里插入图片描述

  • awk ‘pattern’ filename 帅选符合某种条件的行

在这里插入图片描述

  • awk常用内建变量
变量 描述
NR 行号,从1开始
FILENAME 当前文件名

在这里插入图片描述

  • awk -f awk脚本 文件名

在这里插入图片描述
在这里插入图片描述

sed
  • 新增 a
例子 说明
sed ‘2a testContent’ test.txt 在第 2 行后面新增一行内容
sed ‘1,3a testContent’ test.txt 在原文的第 1~3 行后面各新增一行内容
  • 整行替换 c
例子 说明
sed ‘2c testContent’ test.txt 将第 2 行内容整行替换
sed ‘1,3c testContent’ test.txt 将第 1~3 行内容替换成一行指定内容
  • 删除 d
例子 说明
sed ‘2d’ test.txt 删除第 2 行
sed ‘1,3d’ test.txt 删除第1~3行
  • 部分替换s
例子 说明
sed ‘s/old/new/’ test.txt 匹配每一行的第一个old替换为new
sed ‘s/old/new/gi’ test.txt 匹配所有old替换为new,g 代表一行多个,i 代表匹配忽略大小写
sed ‘3,9s/old/new/gi’ test.txt 匹配第 3~9 行所有old替换为new

若不指定行号,则每一行都操作

对比

grep常用于查询
awk用于高级的格式化输出
sed用于对文件的修改

发布了17 篇原创文章 · 获赞 0 · 访问量 906

猜你喜欢

转载自blog.csdn.net/qq_39621037/article/details/102826189
今日推荐