Shell Scriptは関数指向で書く
Shell Scriptは手続的に書くと辛いが、考え方を返ると割と良い感じになる
処理対象のデータは標準入力で受け取る
pipeを多用する
いちいち変数定義とかしない
forと配列は使用しない
代わりに
while
と
read -r
を使う
ref入力用の .txt
を用意しといて、それを入力として渡す
$ cat data.txt | hoge
テンプレ
ex.shawk 1 |
while read -r line
do
echo "$line" |
nkf -W8MQ |
sed 's/=$//' |
...
done
$ chmod +x ./ex.sh
$ cat input.txt | ./ex.sh
awk 1がないと最終行が処理されなかった

もっと良い方法あるかも
コマンドは基本的に標準入力から受け取るもの、と考える
fileから入力できる方が例外
echo
と cat
が重宝する
配列は使わない
代わりに while
と、 read -r
の組み合わせを使う
Unixコマンドは直交性が良いので、ShellScriptで関数作るときも直交性を意識すれば、元のコマンドと同等の直交具合を保ったままプログラミングができそう、というのを思う
とはいえ、細かく関数に切るわけでも無いので、関数志向の手続き型感がある

だから、1行1行の意図が分かりづらい
出力の整形のために sed -e 's|^ | |'
とか書いてても、これだけじゃ推測できない
参考