百日筑基篇——Linux中文本工具应用(Linux入门六)
文章目录
- 前言
- 一、文本搜索工具 **grep**
- 二、流式文本处理工具 **sed**
- 三、文本处理工具 **awk**
- 总结
前言
在Linux中,通常会使用一些工具来处理文本以获得所需的内容。而Linux中的文本处理工具一般是grep 、sed 、awk这三个工具。
一、文本搜索工具 grep
用于在文件或标准输入输出中查找匹配指定模式的行
grep [选项] 模式 [文件名]
-v : 反向匹配,用来获得不匹配的行
-n : 显示匹配行以及行数
-i : 搜索时不区分大小写
-c : 统计匹配的行数
-o : 输出匹配的内容
grep -n "."命令用于在文本文件中查找非空行,并显示它们的行号
grep -E '正则表达式‘ 文件名 (或者使用 -e ,两者都支持正则表达式,但有一定区别)
通过grep工具查看当前目录下的满足匹配要求的文件
我通过使用grep 搜索工具来提取第一列和第二列都相同的行,或者使用-v来取反。
二、流式文本处理工具 sed
sed [选项] 内置命令符 [文件]
选项:
-n : 取消默认输出,常与内部命令P连用
-i : 直接修改文件内容,而不是输出到终端
内置命令符:
a : 追加文本,行后追加
d : 删除匹配行
i : 表示在指定行前插入文本内容
p : 表示打印匹配行的内容
s/A/B/g : 表示将文本中的A替换为B。
想要一次性替换单独的字符,可使用’y/ATCG/TAGC/':表示将文本中的ATCG分别替换为TAGC。如图中所示:
三、文本处理工具 awk
awk [选项] 动作模式 [文件]
-F : 指定分隔符
-V : 定义或修改一个内部变量
可以使用$NF来引用最后一列
awk 会根据空格和制表符,将每一行分成若干列,依次用 $1 、 $2
代表第一个列、第二列等等($0表示整行文本)
如图中所示,使用awk工具筛选出倒数第二列不为0的行,
awk工具还支持条件判断以及自定义函数。
总结
总的来说,grep一般用来搜索和筛选文本内容;sed用于编辑和修改文本文件;awk适用于更复杂的文本处理和计算任务,支持更高级的操作和脚本编写。这三个工具的使用可以相互结合,只要能满足需求就行。
林花谢了春红,太匆匆。
–2023-8-14 筑基篇