シェルスクリプトマガジン

第1回 Amazonの商品ページURLをきれいにする

 半角スペースで複数のURLをつなげた理由は、5行目の「for」文でそのURLを一つずつ処理するためです。for文はループ処理で、

という形式で記述します。半角スペースで区切られたリスト内の各値を変数に代入しながら、「do」~「done」の処理を繰り返し実行します。ここでは、リストはURL変数に格納されています。変数内から値を読み出すには先頭に「$」を付けます。なお、変数かどうか分かりにくい場合もあるので「${」と「}」で囲むようにして「${URL}」のように記述してもよいでしょう。

 6行目の「do」でfor文によるループ処理の開始位置を示します。7行目の変数「DP」には、区切り文字を「/」として整形前のURLの4列目に当たる文字列を代入しています。ここでもコマンド置換を利用しています。「echo」コマンドで変数「i」の値を出力しています。URL変数と同様に「$」を先頭に付けます。

 「|」は「パイプライン」です。

と記述した場合、コマンド1の結果をコマンド2に渡せます。ここでは、整形前の一つのURLが「cut -f 4 -d “/”」に渡っています。「cut」は、列を切り出すコマンドです。「-f」オプションで指定した列(ここでは4番目)を切り出します。「-d」オプションには区切り文字を指定します。