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

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

 3行目では、1行ずつ書き込まれたURLを半角スペースでつないで、変数「URL」に格納しています。変数名は、コマンドやあらかじめ定義されている変数以外の名前なら任意に付けられます。

 変数に値を代入する場合は「変数名=値」という形式で記述します。右辺には、代入する値を記述しなければいけませんが、値の代わりに「$(コマンド)」のように記述することでコマンドの実行結果を代入できます。ちなみに、これを「コマンド置換」と呼びます。

 「sed」は、文字列の置換や削除をするコマンドです。文字列置換は、次のような書式で記述します。

 第1引数の先頭にある「s」が置換を表します。「%」は区切り文字として使っています。区切り文字には「/」や「@」など、置換前や置換後の文字列に含まれない文字(特殊な文字を除く)なら使用できます。最後の「g」は繰り返しの指定です。gを省略すると、置換は1回で終了します。

 今回のシェルスクリプト内では、

のように記述しています。「\n」は改行コードを示す特殊な文字列、「\s」は半角スペースを表す特殊な文字列です。「$1」は特殊な変数であり、スクリプトの実行時に指定した第1引数の名前を呼び出せます。つまり、「./amazon_url.sh 整形前のURLを保存したファイル名」のように実行すれば、整形前のURLをsedコマンドで処理できます。