Bash 脚本入门
Alex Scriven
Data Scientist
本课程将涵盖:
先思考:为什么选 Bash?
Bash 代表 "Bourne Again Shell"(双关语)
诞生于 80 年代,但至今很流行;是许多 Unix 系统与 Mac 的默认 shell
Unix 是互联网的基石!(运行 ML 模型、数据管道)
那么,为什么写 Bash 脚本?
本课程预期您具备一些基础知识。
cat、grep、sed 等基本命令若有些生疏也不必担心——我们现在就来复习!
一些重要的 shell 命令:
(e)grep 基于正则匹配过滤输入cat 按行连接并输出文件内容tail / head 返回最后/最前的 -n 行(通过标志)wc 统计词或行(标志 -w、-l)sed 基于模式替换字符串"Regex"或正则表达式是 Bash 脚本的重要技能。
您常需过滤文件、文件内数据、匹配参数等多种场景。值得重温。
可用 regex101.com 等网站测试正则。
我们通过示例复习一些 shell 命令。
有一个文本文件 fruits.txt,包含 3 行:
banana
apple
carrot
运行 grep 'a' fruits.txt 将返回:
banana
apple
carrot
但若运行 grep 'p' fruits.txt 将返回:
apple
回顾:方括号是匹配集合,如 [eyfv]。加 ^ 变为取反集合(排除这些字符)。
因此运行 grep '[pc]' fruits.txt 将返回:
apple
carrot
您可能用过终端中的"管道"。若文件里有很多水果,可用 sort | uniq -c。
wc -l 并用 headcat new_fruits.txt | sort | uniq -c | head -n 3
14 apple
13 bannana
12 carrot
Bash 脚本入门