Linux三剑客:grep、sed和awk
运维必须会的linux三剑客,被称为linux利器。(建议收藏,运维面试100%会涉及)
Linux三剑客:grep、sed和awk
Linux提供了许多命令行工具来帮助我们处理和分析文本数据。其中最著名的三个工具就是grep、sed和awk。它们被称为Linux三剑客,因为它们在处理文本数据时非常强大和灵活。
我们先看看,几个关于linux运维的面试题,你就知道重要性。
我们开始介绍用法:
grep—搜索指定的内容
grep
命令用于在文本文件中搜索指定的内容,并返回匹配的行。以下是grep
命令的10个用法举例:
- 搜索包含指定关键词的行:
grep "keyword" file.txt
- 搜索不区分大小写的关键词:
grep -i "keyword" file.txt
- 反向搜索,返回不包含指定关键词的行:
grep -v "keyword" file.txt
- 统计匹配行的数量:
grep -c "keyword" file.txt
- 显示匹配行之前的内容:
grep -B 2 "keyword" file.txt
- 显示匹配行之后的内容:
grep -A 2 "keyword" file.txt
- 显示匹配行及其上下文的内容:
grep -C 2 "keyword" file.txt
- 仅显示匹配的关键词:
grep -o "keyword" file.txt
- 递归搜索目录及其子目录下的文件:
grep -r "keyword" directory
- 使用正则表达式进行高级搜索:
grep -E "pattern" file.txt
sed—流式编辑
sed
命令用于对文本进行流式编辑,可以进行替换、删除、插入等操作。以下是sed
命令的10个用法举例:
- 替换文本中的指定字符串:
sed 's/old/new/' file.txt
- 替换文本中的所有匹配字符串:
sed 's/old/new/g' file.txt
- 删除匹配指定模式的行:
sed '/pattern/d' file.txt
- 删除空白行:
sed '/^$/d' file.txt
- 在匹配行之前插入新行:
sed '/pattern/i new line' file.txt
- 在匹配行之后插入新行:
sed '/pattern/a new line' file.txt
- 仅打印匹配的行:
sed -n '/pattern/p' file.txt
- 仅打印指定行范围内的内容:
sed -n '2,5p' file.txt
- 将文本中的所有字母转为大写:
sed 's/[a-z]/\U&/g' file.txt
- 将文本中的所有字母转为小写:
sed 's/[A-Z]/\L&/g' file.txt
awk—文本处理
awk
命令是一种强大的文本处理工具,可以根据指定的规则从文本中提取信息并进行处理。以下是awk
命令的10个用法举例:
- 打印指定列的内容:
awk '{print $1}' file.txt
- 根据指定的分隔符切割文本并打印指定列:
awk -F',' '{print $2}' file.txt
- 根据指定条件筛选行并打印:
awk '/pattern/{print}' file.txt
- 计算指定列的总和:
awk '{sum += $1} END {print sum}' file.txt
- 根据指定条件进行行和列的求和:
awk '{rowsum+=$1; colsum+=$2} END {print rowsum, colsum}' file.txt
- 根据指定条件进行行的分组并计数:
awk '{count[$1]++} END {for (item in count) print item, count[item]}' file.txt
- 根据指定条件进行行的分组并求平均值:
awk '{sum[$1]+=$2; count[$1]++} END {for (item in sum) print item, sum[item]/count[item]}' file.txt
- 格式化输出:
awk '{printf "%-10s %-5d\n", $1, $2}' file.txt
- 自定义变量并进行计算:
awk 'BEGIN {x=5; y=10; print x+y}'
- 执行自定义函数:
awk 'function myfunc(x) {return x*2} {print myfunc($1)}' file.txt
以上是Linux三剑客(grep、sed和awk)的介绍以及每个命令的10个用法举例。它们在文本处理和分析中非常实用,希望对你有所帮助!
如果你对其他Linux命令或者更多用法感兴趣,可以在留言,下期为你提供更多相关内容。
作者寄语
- 关注、点赞、收藏、转发、看一看
- 持续分享各类开源的好项目,有任何问题留言探讨。
IT仔的笔记本生活笔记本公众号
收录于合集 #linux
11个上一篇linux运维装逼神器,你值得拥有,非常有趣的命令。(转发起来!!!)下一篇linux一键安装Oracle java JDK脚本,方便你我他。(建议转发+收藏)
IT仔的笔记本
关注后可发消息