Bash三剑客:grep, sed, awk 全面解析 (^▽^)ノ♪
作为Linux系统中的三大文本处理神器,bash三剑客是每位研究生的必备技能!让我们一起来深入探索它们的强大功能吧~(ノ◕ヮ◕)ノ*:・゚✧
grep:文本搜索小能手
|
|
grep(Global Regular Expression Print)是最常用的文本搜索工具,主要功能是在文件中查找匹配特定模式的文本行。
常用选项:
-i
:忽略大小写-v
:反向选择,显示不匹配的行-n
:显示行号-c
:统计匹配行数-r
或-R
:递归搜索目录-E
:使用扩展正则表达式(等效于egrep)
数学表达式匹配示例(使用-P
支持Perl正则):
|
|
sed:流编辑器大师
|
|
sed(Stream EDitor)是非交互式的流编辑器,擅长对文本进行逐行处理。
核心命令格式:
|
|
常用操作:
s
:替换sed 's/old/new/g' file
(`・ω・´)d
:删除sed '/pattern/d' file
p
:打印sed -n '/pattern/p' file
a
:追加sed '3a\new line' file
i
:插入sed '2i\insert line' file
科研数据处理示例:
|
|
awk:文本处理瑞士军刀
|
|
awk是一种强大的文本处理编程语言,特别适合处理结构化数据(如表格)。
基本结构:
|
|
内置变量:
NR
:当前记录数(行号)NF
:当前记录的字段数FS
:输入字段分隔符(默认空格或制表符)OFS
:输出字段分隔符
数学计算示例(・ω<)★:
|
|
三剑客组合技 (ง •_•)ง
它们的真正威力在于组合使用!看个复杂例子:
|
|
性能优化小贴士 ٩(◕‿◕。)۶
- 减少管道次数:尽可能在一个命令中完成更多操作
- 提前过滤:先用grep过滤掉无关行再处理
- 使用最合适的工具:
- 简单搜索 → grep
- 简单替换 → sed
- 复杂处理 → awk
- 利用并行处理:对于大文件,可以考虑使用
parallel
命令
进阶学习资源 ╰(°▽°)╯
- 官方文档:
man grep
,info sed
,man awk
- 经典书籍:
- 《sed & awk》 by Dale Dougherty
- 《精通正则表达式》 by Jeffrey Friedl
- 在线教程:
- GNU awk用户指南
- grepbible (grep技巧大全)
记住,bash三剑客的学习需要大量实践!试着用它们来处理你的论文数据、实验日志或代码文件吧~(ノ>ω<)ノ