「シェルスクリプト2」の編集履歴(バックアップ)一覧はこちら

シェルスクリプト2」(2009/02/12 (木) 11:37:00) の最新版変更点

追加された行は緑色になります。

削除された行は赤色になります。

<h3><font color="#FF0000">作成途中</font></h3> <h3>forを使ってたくさん地図を描いてみる</h3> <p>ご存じのようにパソコンは同じ作業を繰り返すのが得意です。<br /> 今回は1月から12月まで行われた調査の<br /> 月ごとの密度をForというコマンドを使っていっぺんに作図してみます。<br /> 使用するデータは<a href="../../suisan/?page=awk%E3%81%A7%E3%83%87%E3%83%BC%E3%82%BF%E6%8A%BD%E5%87%BA">awkでデータ抽出</a>で使用した<br /><a target="_blank" href="../../suisan?cmd=upload&amp;act=open&amp;pageid=39&amp;file=dummy_density.txt"> dummy_density.txt</a><br /> です。<br /><br /> 前にも説明しましたが、このファイルには<br /> No. 月 日 経度 緯度 水深 水温 密度<br /> というデータが記録されています。<br /> ここから月ごとの密度のデータを抽出し、図を12枚描きます。<br /> こんな感じです。<br /><strong><font size="1">以下の図はillustratorで加工してます。</font></strong><br /><br /><a href="http://www19.atwiki.jp/suisan/?cmd=upload&amp;act=open&amp;page=%E3%82%B7%E3%82%A7%E3%83%AB%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%97%E3%83%882&amp;file=sh1.jpg"> <img width="400" alt="" src="http://www19.atwiki.jp/suisan/?cmd=upload&amp;act=open&amp;page=%E3%82%B7%E3%82%A7%E3%83%AB%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%97%E3%83%882&amp;file=sh1.jpg" /></a><br /><br /> forを使って簡単なプログラムを作ると、<br /> 簡単に一括処理できます。シェルスクリプトは以下の通りです。<br /> ----------------------------------------------------------<br /><span style="background-color:rgb(255,255,153);">region=140/148/38/45</span><br style="background-color:rgb(255,255,153);" /><span style="background-color:rgb(255,255,153);">output=density.ps</span><br style="background-color:rgb(255,255,153);" /><span style="background-color:rgb(255,255,153);">data=dummy_density.txt</span><br /><font color="#FF0000"><span style="background-color:rgb(255,255,153);"><br /> for month in 1 2 3 4 5 6 7 8 9 10 11 12</span></font><br /><font color="#FF0000" style="background-color:rgb(255,255,153);">do</font><br /><span style="background-color:rgb(255,255,153);">awk '($3=='$month' ){print $5,$4,$8}' $data | \</span><br style="background-color:rgb(255,255,153);" /><span style="background-color:rgb(255,255,153);">psxy -Jm1.5 -Sc -R$region -W2/255/0/0 -P  -K &gt; $month-$output</span><br style="background-color:rgb(255,255,153);" /><br style="background-color:rgb(255,255,153);" /><span style="background-color:rgb(255,255,153);">pscoast -R -Jm -Df -W1 -G200 -A500 -B2:."$month-gatsu-density": -P -O &gt;&gt; $month-$output</span><br /><font color="#FF0000" style="background-color:rgb(255,255,153);">done</font><br /> ----------------------------------------------------------<br /> 変数とawk、forを使うことで、このような短いコマンドで12枚の図を描くことができます。<br /> 今回初めて登場したforは<br /> -------------------------------<br /><font color="#FF0000">for</font>変数名 <font color="#FF0000">in</font>数値<br /><font color="#FF0000">do</font><br /> 繰り返すコマンド<br /><font color="#FF0000">done</font><br /> -------------------------------<br /> のような形で使用し、変数名に数値の部分を代入し、数値が<br /> do~doneに書かれたコマンドを繰り返します。<br /> 上のコマンドだと、はじめに変数(month)に1を代入し(つまり1月)、<br /> awkとpscoastを行い、それが終わると、2を代入といったように、<br /> 12月までコマンドを繰り返しています。<br /> このように、同じ作業を何度も行う時は、forを使うと便利です。</p>
<h3>forを使ってたくさん地図を描いてみる</h3> <p>ご存じのようにパソコンは同じ作業を繰り返すのが得意です。<br /> 今回は1月から12月まで行われた調査の<br /> 月ごとの密度をForというコマンドを使っていっぺんに作図してみます。<br /> 使用するデータは<a href="../../suisan/?page=awk%E3%81%A7%E3%83%87%E3%83%BC%E3%82%BF%E6%8A%BD%E5%87%BA">awkでデータ抽出</a>で使用した<br /><a href="../../suisan?cmd=upload&amp;act=open&amp;pageid=39&amp;file=dummy_density.txt" target="_blank">dummy_density.txt</a><br /> です。<br /><br /> 前にも説明しましたが、このファイルには<br /> No. 月 日 経度 緯度 水深 水温 密度<br /> というデータが記録されています。<br /> ここから月ごとの密度のデータを抽出し、図を12枚描きます。<br /> こんな感じです。<br /><strong><font size="1">以下の図はillustratorで加工してます。</font></strong><br /><br /><a href="http://www19.atwiki.jp/suisan/?cmd=upload&amp;act=open&amp;page=%E3%82%B7%E3%82%A7%E3%83%AB%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%97%E3%83%882&amp;file=sh1.jpg"> <img width="400" src="http://www19.atwiki.jp/suisan/?cmd=upload&amp;act=open&amp;page=%E3%82%B7%E3%82%A7%E3%83%AB%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%97%E3%83%882&amp;file=sh1.jpg" alt="" /></a><br /><br /> forを使って簡単なプログラムを作ると、<br /> 簡単に一括処理できます。シェルスクリプトは以下の通りです。<br /> ----------------------------------------------------------<br /><span style="background-color:rgb(255,255,153);">region=140/148/38/45</span><br style="background-color:rgb(255,255,153);" /><span style="background-color:rgb(255,255,153);">output=density.ps</span><br style="background-color:rgb(255,255,153);" /><span style="background-color:rgb(255,255,153);">data=dummy_density.txt</span><br /><font color="#FF0000"><span style="background-color:rgb(255,255,153);"><br /> for month in 1 2 3 4 5 6 7 8 9 10 11 12</span></font><br /><font color="#FF0000" style="background-color:rgb(255,255,153);">do</font><br /><span style="background-color:rgb(255,255,153);">awk '($3=='$month' ){print $5,$4,$8}' $data | \</span><br style="background-color:rgb(255,255,153);" /><span style="background-color:rgb(255,255,153);">psxy -Jm1.5 -Sc -R$region -W2/255/0/0 -P  -K &gt; $month-$output</span><br style="background-color:rgb(255,255,153);" /><br style="background-color:rgb(255,255,153);" /><span style="background-color:rgb(255,255,153);">pscoast -R -Jm -Df -W1 -G200 -A500 -B2:."$month-gatsu-density": -P -O &gt;&gt; $month-$output</span><br /><font color="#FF0000" style="background-color:rgb(255,255,153);">done</font><br /> ----------------------------------------------------------<br /> 変数とawk、forを使うことで、このような短いコマンドで12枚の図を描くことができます。<br /> 今回初めて登場したforは<br /> -------------------------------<br /><font color="#FF0000">for</font>変数名 <font color="#FF0000">in</font>数値<br /><font color="#FF0000">do</font><br /> 繰り返すコマンド<br /><font color="#FF0000">done</font><br /> -------------------------------<br /> のような形で使用し、変数名に数値の部分を代入し、数値が<br /> do~doneに書かれたコマンドを繰り返します。<br /> 上のコマンドだと、はじめに変数(month)に1を代入し(つまり1月)、<br /> awkとpscoastを行い、それが終わると、2を代入といったように、<br /> 12月までコマンドを繰り返しています。<br /> このように、同じ作業を何度も行う時は、forを使うと便利です。</p>

表示オプション

横に並べて表示:
変化行の前後のみ表示: