Bashスクリプト入門
Alex Scriven
Data Scientist
このコースで扱う内容:
まず、なぜ Bash かを考えます。
Bash は “Bourne Again Shell”(もじり)を意味します。
80 年代に開発。現在も広く使用。多くの Unix 系や Mac の標準シェル。
Unix はインターネットの基盤(ML モデル、データパイプラインを実行)
では、なぜ Bash スクリプトか。
本コースには基礎知識が必要です。
cat、grep、sed などの基本操作経験忘れていても心配無用。今から復習します。
重要なシェルコマンド:
(e)grep は正規表現で入力をフィルタcat はファイル内容を行ごとに連結表示tail / head は末尾/先頭の -n 行のみを表示wc は語数や行数を計数(-w、-l)sed はパターン一致で文字列を置換「Regex」こと 正規表現 は Bash スクリプトで重要なスキルです。
ファイルやファイル内データのフィルタ、引数のマッチなどで頻繁に使います。復習しておきましょう。
正規表現のテストには regex101.com などが便利です。
例でシェルコマンドを復習します。
3 行の fruits.txt を考えます。
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 にパイプし、head を使います。cat new_fruits.txt | sort | uniq -c | head -n 3
14 apple
13 bannana
12 carrot
Bashスクリプト入門