百日筑基篇——Linux中文本工具应用(Linux入门六)

百日筑基篇——Linux中文本工具应用(Linux入门六)

文章目录

  • 前言
  • 一、文本搜索工具 **grep**
  • 二、流式文本处理工具 **sed**
  • 三、文本处理工具 **awk**
  • 总结


前言

在Linux中,通常会使用一些工具来处理文本以获得所需的内容。而Linux中的文本处理工具一般是grep 、sed 、awk这三个工具。


一、文本搜索工具 grep

用于在文件或标准输入输出中查找匹配指定模式的行
grep [选项] 模式 [文件名]

-v : 反向匹配,用来获得不匹配的行
-n : 显示匹配行以及行数
-i : 搜索时不区分大小写
-c : 统计匹配的行数
-o : 输出匹配的内容

grep -n "."命令用于在文本文件中查找非空行,并显示它们的行号
grep -E '正则表达式‘ 文件名 (或者使用 -e ,两者都支持正则表达式,但有一定区别)
百日筑基篇——Linux中文本工具应用(Linux入门六)_第1张图片
通过grep工具查看当前目录下的满足匹配要求的文件
百日筑基篇——Linux中文本工具应用(Linux入门六)_第2张图片
我通过使用grep 搜索工具来提取第一列和第二列都相同的行,或者使用-v来取反。

二、流式文本处理工具 sed

sed [选项] 内置命令符 [文件]

选项:
-n : 取消默认输出,常与内部命令P连用
-i : 直接修改文件内容,而不是输出到终端

内置命令符:
a : 追加文本,行后追加
d : 删除匹配行
i : 表示在指定行前插入文本内容
p : 表示打印匹配行的内容
s/A/B/g : 表示将文本中的A替换为B。

想要一次性替换单独的字符,可使用’y/ATCG/TAGC/':表示将文本中的ATCG分别替换为TAGC。如图中所示:
百日筑基篇——Linux中文本工具应用(Linux入门六)_第3张图片

百日筑基篇——Linux中文本工具应用(Linux入门六)_第4张图片

三、文本处理工具 awk

awk [选项] 动作模式 [文件]

-F : 指定分隔符
-V : 定义或修改一个内部变量

可以使用$NF来引用最后一列
百日筑基篇——Linux中文本工具应用(Linux入门六)_第5张图片
awk 会根据空格和制表符,将每一行分成若干列,依次用 $1 、 $2
代表第一个列、第二列等等($0表示整行文本)
如图中所示,使用awk工具筛选出倒数第二列不为0的行,
awk工具还支持条件判断以及自定义函数。


总结

总的来说,grep一般用来搜索和筛选文本内容;sed用于编辑和修改文本文件;awk适用于更复杂的文本处理和计算任务,支持更高级的操作和脚本编写。这三个工具的使用可以相互结合,只要能满足需求就行。

林花谢了春红,太匆匆。

–2023-8-14 筑基篇

你可能感兴趣的:(linux学习篇,linux,运维,服务器)