■bashでのワンライナー。 以下で書けてしまうのはそれはそれで良い。 元ネタ:もし新人女子Javaプログラマが『Groovyイン・アクション』を読んだら 〜第1章〜 http://beta.mybetabook.com/showpage/4f27ceb10cf26106dca875d3 ■センタリングも自分でやろうとすると、bashでは以下のようになる。 $ MAX=8;\ for count in `seq 1 2 $MAX`;do \ SPACE=`echo "${MAX} ${count}" | awk '{print ($1/2)-($2-($2%2))/2}'`;\ while [ "${SPACE}" -gt 1 ];do \ echo -ne " ";let SPACE--; \ done; \ while [ $count -ne 0 ];do echo -ne "*";let count--;done; \ echo "";done * *** ***** ******* ■5行にしてみたけれど、実質一行で書けますよ。というただそれだけのお話。。。 $ MAX=80;for count in `seq 1 2 $MAX`;do \ SPACE=`echo "${MAX} ${count}" | awk '{print ($1/2)-($2-($2%2))/2}'`;\ while [ $SPACE -gt 1 ];do echo -ne " ";let SPACE--;done; \ while [ $count -ne 0 ];do echo -ne "*";let count--;done; \ echo "";done * *** ***** ******* ********* *********** ************* *************** ***************** ******************* ********************* *********************** ************************* *************************** ***************************** ******************************* ********************************* *********************************** ************************************* *************************************** ***************************************** ******************************************* ********************************************* *********************************************** ************************************************* *************************************************** ***************************************************** ******************************************************* ********************************************************* *********************************************************** ************************************************************* *************************************************************** ***************************************************************** ******************************************************************* ********************************************************************* *********************************************************************** ************************************************************************* *************************************************************************** ***************************************************************************** ******************************************************************************* ■おまけ1 スペースの計算についての説明の代わりとして、 「変数MAXまでの奇数の増分2」はseqで決まっているので以下でも良いということを示しておく。 $ MAX=80;for count in `seq 1 2 $MAX`;do \ SPACE=`echo "${MAX} ${count}" | awk '{print ($1/2)-($2-1)/2}'`; \ while [ $SPACE -gt 1 ];do echo -ne " ";let SPACE--;done; \ while [ $count -ne 0 ];do echo -ne "*";let count--;done; \ echo "";done ■おまけ2 $ MAX=40;for count in `seq 1 2 $MAX`;do \ SPACE=`echo "${MAX} ${count}" | awk '{print ($1/2)-($2-($2%2))/2}'`;\ while [ $SPACE -gt 1 ];do echo -ne " ";let SPACE--;done; \ while [ $count -ne 0 ];do TEMP=`echo $count | awk '{printf "%2d" , $1}'`; echo -ne "$TEMP";let count--;done; \ echo "";done 1 3 2 1 5 4 3 2 1 7 6 5 4 3 2 1 9 8 7 6 5 4 3 2 1 1110 9 8 7 6 5 4 3 2 1 13121110 9 8 7 6 5 4 3 2 1 151413121110 9 8 7 6 5 4 3 2 1 1716151413121110 9 8 7 6 5 4 3 2 1 19181716151413121110 9 8 7 6 5 4 3 2 1 212019181716151413121110 9 8 7 6 5 4 3 2 1 2322212019181716151413121110 9 8 7 6 5 4 3 2 1 25242322212019181716151413121110 9 8 7 6 5 4 3 2 1 272625242322212019181716151413121110 9 8 7 6 5 4 3 2 1 2928272625242322212019181716151413121110 9 8 7 6 5 4 3 2 1 31302928272625242322212019181716151413121110 9 8 7 6 5 4 3 2 1 333231302928272625242322212019181716151413121110 9 8 7 6 5 4 3 2 1 3534333231302928272625242322212019181716151413121110 9 8 7 6 5 4 3 2 1 37363534333231302928272625242322212019181716151413121110 9 8 7 6 5 4 3 2 1 393837363534333231302928272625242322212019181716151413121110 9 8 7 6 5 4 3 2 1 ■おまけ3 $ MAX=40;for count in `seq 1 2 $MAX`;do \ SPACE=`echo "${MAX} ${count}" | awk '{print ($1/2)-($2-($2%2))/2}'`;\ while [ $SPACE -gt 1 ];do echo -ne " ";let SPACE--;done; \ while [ $count -ne 0 ];do TEMP=`echo $count | awk '{printf "%2d" , $1-1}'`; echo -ne "$TEMP";let count--;done; \ echo "";done 0 2 1 0 4 3 2 1 0 6 5 4 3 2 1 0 8 7 6 5 4 3 2 1 0 10 9 8 7 6 5 4 3 2 1 0 121110 9 8 7 6 5 4 3 2 1 0 1413121110 9 8 7 6 5 4 3 2 1 0 16151413121110 9 8 7 6 5 4 3 2 1 0 181716151413121110 9 8 7 6 5 4 3 2 1 0 2019181716151413121110 9 8 7 6 5 4 3 2 1 0 22212019181716151413121110 9 8 7 6 5 4 3 2 1 0 242322212019181716151413121110 9 8 7 6 5 4 3 2 1 0 2625242322212019181716151413121110 9 8 7 6 5 4 3 2 1 0 28272625242322212019181716151413121110 9 8 7 6 5 4 3 2 1 0 302928272625242322212019181716151413121110 9 8 7 6 5 4 3 2 1 0 3231302928272625242322212019181716151413121110 9 8 7 6 5 4 3 2 1 0 34333231302928272625242322212019181716151413121110 9 8 7 6 5 4 3 2 1 0 363534333231302928272625242322212019181716151413121110 9 8 7 6 5 4 3 2 1 0 3837363534333231302928272625242322212019181716151413121110 9 8 7 6 5 4 3 2 1 0 ■おまけ4 $ MAX=40;for count in `seq 1 2 $MAX`;do \ SPACE=`echo "${MAX} ${count}" | awk '{print ($1/2)-($2-($2%2))/2}'`;\ while [ $SPACE -gt 1 ];do echo -ne " ";let SPACE--;done; \ while [ $count -ne 0 ];do TEMP=`echo $count | awk '{printf "%02d" , $1-1}'`; echo -ne "$TEMP";let count--;done; \ echo "";done 00 020100 0403020100 06050403020100 080706050403020100 1009080706050403020100 12111009080706050403020100 141312111009080706050403020100 1615141312111009080706050403020100 18171615141312111009080706050403020100 201918171615141312111009080706050403020100 2221201918171615141312111009080706050403020100 24232221201918171615141312111009080706050403020100 262524232221201918171615141312111009080706050403020100 2827262524232221201918171615141312111009080706050403020100 30292827262524232221201918171615141312111009080706050403020100 323130292827262524232221201918171615141312111009080706050403020100 3433323130292827262524232221201918171615141312111009080706050403020100 36353433323130292827262524232221201918171615141312111009080706050403020100 383736353433323130292827262524232221201918171615141312111009080706050403020100 ■おまけ5 $ MAX=38;for count in `seq $MAX -2 0`;do \ SPACE=`echo "${MAX} ${count}" | awk '{print ($1/2)-($2-($2%2))/2}'`; \ while [ $SPACE -ge 1 ];do echo -ne " ";let SPACE--;done; \ while [ $count -ge 0 ];do TEMP=`echo $count | awk '{printf "%2d" , $1}'`; echo -ne "$TEMP";let count--;done; \ echo "";done 3837363534333231302928272625242322212019181716151413121110 9 8 7 6 5 4 3 2 1 0 363534333231302928272625242322212019181716151413121110 9 8 7 6 5 4 3 2 1 0 34333231302928272625242322212019181716151413121110 9 8 7 6 5 4 3 2 1 0 3231302928272625242322212019181716151413121110 9 8 7 6 5 4 3 2 1 0 302928272625242322212019181716151413121110 9 8 7 6 5 4 3 2 1 0 28272625242322212019181716151413121110 9 8 7 6 5 4 3 2 1 0 2625242322212019181716151413121110 9 8 7 6 5 4 3 2 1 0 242322212019181716151413121110 9 8 7 6 5 4 3 2 1 0 22212019181716151413121110 9 8 7 6 5 4 3 2 1 0 2019181716151413121110 9 8 7 6 5 4 3 2 1 0 181716151413121110 9 8 7 6 5 4 3 2 1 0 16151413121110 9 8 7 6 5 4 3 2 1 0 1413121110 9 8 7 6 5 4 3 2 1 0 121110 9 8 7 6 5 4 3 2 1 0 10 9 8 7 6 5 4 3 2 1 0 8 7 6 5 4 3 2 1 0 6 5 4 3 2 1 0 4 3 2 1 0 2 1 0 0 ■おまけ6 $ MAX=38;for count in `seq $MAX -2 0`;do \ SPACE=`echo "${MAX} ${count}" | awk '{print ($1/2)-($2-($2%2))/2}'`; \ while [ $SPACE -ge 1 ];do echo -ne " ";let SPACE--;done; \ while [ $count -ge 0 ];do TEMP=`echo $count | awk '{printf "%2d" , $1+1}'`; echo -ne "$TEMP";let count--;done; \ echo "";done 393837363534333231302928272625242322212019181716151413121110 9 8 7 6 5 4 3 2 1 37363534333231302928272625242322212019181716151413121110 9 8 7 6 5 4 3 2 1 3534333231302928272625242322212019181716151413121110 9 8 7 6 5 4 3 2 1 333231302928272625242322212019181716151413121110 9 8 7 6 5 4 3 2 1 31302928272625242322212019181716151413121110 9 8 7 6 5 4 3 2 1 2928272625242322212019181716151413121110 9 8 7 6 5 4 3 2 1 272625242322212019181716151413121110 9 8 7 6 5 4 3 2 1 25242322212019181716151413121110 9 8 7 6 5 4 3 2 1 2322212019181716151413121110 9 8 7 6 5 4 3 2 1 212019181716151413121110 9 8 7 6 5 4 3 2 1 19181716151413121110 9 8 7 6 5 4 3 2 1 1716151413121110 9 8 7 6 5 4 3 2 1 151413121110 9 8 7 6 5 4 3 2 1 13121110 9 8 7 6 5 4 3 2 1 1110 9 8 7 6 5 4 3 2 1 9 8 7 6 5 4 3 2 1 7 6 5 4 3 2 1 5 4 3 2 1 3 2 1 1 ■こうやって見ると最初の「*」の三角形はダサいですね。。。 $ MAX=40;for count in `seq 1 2 $MAX`;do \ SPACE=`echo "${MAX} ${count}" | awk '{print ($1/2)-($2-($2%2))/2}'`; \ while [ $SPACE -gt 1 ];do echo -ne " ";let SPACE--;done; \ while [ $count -ne 0 ];do echo -ne "* ";let count--;done; \ echo "";done * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ■ひし形 $ MAX=40;for count in `seq 1 2 $MAX`;do \ SPACE=`echo "${MAX} ${count}" | awk '{print ($1/2)-($2-($2%2))/2}'`; \ while [ $SPACE -gt 1 ];do echo -ne " ";let SPACE--;done; \ while [ $count -ne 0 ];do echo -ne "* ";let count--;done; \ echo "";done; \ MAX=36;for count in `seq $MAX -2 0`;do \ SPACE=`echo "${MAX} ${count}" | awk '{print ($1/2)-($2-($2%2))/2}'`; \ while [ $SPACE -ge 0 ];do echo -ne " ";let SPACE--;done; \ while [ $count -ge 0 ];do echo -ne "* ";let count--;done; \ echo "";done * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ■ひし形2 $ MAX=40;for count in `seq 1 2 $MAX`;do \ SPACE=`echo "${MAX} ${count}" | awk '{print ($1/2)-($2-($2%2))/2}'`;\ while [ $SPACE -gt 1 ];do echo -ne " ";let SPACE--;done; \ while [ $count -ne 0 ];do TEMP=`echo $count | awk '{printf "%2d" , $1}'`; echo -ne "$TEMP";let count--;done; \ echo "";done; \ MAX=38;for count in `seq $MAX -2 0`;do \ SPACE=`echo "${MAX} ${count}" | awk '{print ($1/2)-($2-($2%2))/2}'`; \ echo -ne " "; \ while [ $SPACE -gt 0 ];do echo -ne " ";let SPACE--;done; \ while [ $count -ge 0 ];do TEMP=`echo $count | awk '{printf "%2d" , $1}'`; echo -ne "$TEMP";let count--;done; \ echo "";done 1 3 2 1 5 4 3 2 1 7 6 5 4 3 2 1 9 8 7 6 5 4 3 2 1 1110 9 8 7 6 5 4 3 2 1 13121110 9 8 7 6 5 4 3 2 1 151413121110 9 8 7 6 5 4 3 2 1 1716151413121110 9 8 7 6 5 4 3 2 1 19181716151413121110 9 8 7 6 5 4 3 2 1 212019181716151413121110 9 8 7 6 5 4 3 2 1 2322212019181716151413121110 9 8 7 6 5 4 3 2 1 25242322212019181716151413121110 9 8 7 6 5 4 3 2 1 272625242322212019181716151413121110 9 8 7 6 5 4 3 2 1 2928272625242322212019181716151413121110 9 8 7 6 5 4 3 2 1 31302928272625242322212019181716151413121110 9 8 7 6 5 4 3 2 1 333231302928272625242322212019181716151413121110 9 8 7 6 5 4 3 2 1 3534333231302928272625242322212019181716151413121110 9 8 7 6 5 4 3 2 1 37363534333231302928272625242322212019181716151413121110 9 8 7 6 5 4 3 2 1 393837363534333231302928272625242322212019181716151413121110 9 8 7 6 5 4 3 2 1 3837363534333231302928272625242322212019181716151413121110 9 8 7 6 5 4 3 2 1 0 363534333231302928272625242322212019181716151413121110 9 8 7 6 5 4 3 2 1 0 34333231302928272625242322212019181716151413121110 9 8 7 6 5 4 3 2 1 0 3231302928272625242322212019181716151413121110 9 8 7 6 5 4 3 2 1 0 302928272625242322212019181716151413121110 9 8 7 6 5 4 3 2 1 0 28272625242322212019181716151413121110 9 8 7 6 5 4 3 2 1 0 2625242322212019181716151413121110 9 8 7 6 5 4 3 2 1 0 242322212019181716151413121110 9 8 7 6 5 4 3 2 1 0 22212019181716151413121110 9 8 7 6 5 4 3 2 1 0 2019181716151413121110 9 8 7 6 5 4 3 2 1 0 181716151413121110 9 8 7 6 5 4 3 2 1 0 16151413121110 9 8 7 6 5 4 3 2 1 0 1413121110 9 8 7 6 5 4 3 2 1 0 121110 9 8 7 6 5 4 3 2 1 0 10 9 8 7 6 5 4 3 2 1 0 8 7 6 5 4 3 2 1 0 6 5 4 3 2 1 0 4 3 2 1 0 2 1 0 0 ■ひし形3 $ MAX=40;for count in `seq 1 2 $MAX`;do \ SPACE=`echo "${MAX} ${count}" | awk '{print ($1/2)-($2-($2%2))/2}'`; \ while [ $SPACE -gt 1 ];do echo -ne " ";let SPACE--;done; \ while [ $count -ne 0 ];do TEMP=`echo $count | awk '{printf "%2d" , $1}'`; echo -ne "$TEMP";let count--;done; \ echo "";done; \ MAX=36;for count in `seq $MAX -2 0`;do \ SPACE=`echo "${MAX} ${count}" | awk '{print ($1/2)-($2-($2%2))/2}'`; \ echo -ne " "; \ while [ $SPACE -gt 0 ];do echo -ne " ";let SPACE--;done; \ while [ $count -ge 0 ];do TEMP=`echo $count | awk '{printf "%2d" , $1+1}'`; echo -ne "$TEMP";let count--;done; \ echo "";done 1 3 2 1 5 4 3 2 1 7 6 5 4 3 2 1 9 8 7 6 5 4 3 2 1 1110 9 8 7 6 5 4 3 2 1 13121110 9 8 7 6 5 4 3 2 1 151413121110 9 8 7 6 5 4 3 2 1 1716151413121110 9 8 7 6 5 4 3 2 1 19181716151413121110 9 8 7 6 5 4 3 2 1 212019181716151413121110 9 8 7 6 5 4 3 2 1 2322212019181716151413121110 9 8 7 6 5 4 3 2 1 25242322212019181716151413121110 9 8 7 6 5 4 3 2 1 272625242322212019181716151413121110 9 8 7 6 5 4 3 2 1 2928272625242322212019181716151413121110 9 8 7 6 5 4 3 2 1 31302928272625242322212019181716151413121110 9 8 7 6 5 4 3 2 1 333231302928272625242322212019181716151413121110 9 8 7 6 5 4 3 2 1 3534333231302928272625242322212019181716151413121110 9 8 7 6 5 4 3 2 1 37363534333231302928272625242322212019181716151413121110 9 8 7 6 5 4 3 2 1 393837363534333231302928272625242322212019181716151413121110 9 8 7 6 5 4 3 2 1 37363534333231302928272625242322212019181716151413121110 9 8 7 6 5 4 3 2 1 3534333231302928272625242322212019181716151413121110 9 8 7 6 5 4 3 2 1 333231302928272625242322212019181716151413121110 9 8 7 6 5 4 3 2 1 31302928272625242322212019181716151413121110 9 8 7 6 5 4 3 2 1 2928272625242322212019181716151413121110 9 8 7 6 5 4 3 2 1 272625242322212019181716151413121110 9 8 7 6 5 4 3 2 1 25242322212019181716151413121110 9 8 7 6 5 4 3 2 1 2322212019181716151413121110 9 8 7 6 5 4 3 2 1 212019181716151413121110 9 8 7 6 5 4 3 2 1 19181716151413121110 9 8 7 6 5 4 3 2 1 1716151413121110 9 8 7 6 5 4 3 2 1 151413121110 9 8 7 6 5 4 3 2 1 13121110 9 8 7 6 5 4 3 2 1 1110 9 8 7 6 5 4 3 2 1 9 8 7 6 5 4 3 2 1 7 6 5 4 3 2 1 5 4 3 2 1 3 2 1 1 ■各文字に割り当てられたサイズは無視すると、底辺も高さも一目瞭然ですねw。。。 $ MAX=40;for count in `seq 1 2 $MAX`;do \ SPACE=`echo "${MAX} ${count}" | awk '{print ($1/2)-($2-($2%2))/2}'`; \ while [ $SPACE -gt 1 ];do echo -ne " ";let SPACE--;done; \ while [ $count -ne 0 ];do TEMP=`echo $count | awk '{printf "%02d" , $1}'`; echo -ne "$TEMP";let count--;done; \ echo "";done; \ MAX=36;for count in `seq $MAX -2 0`;do \ SPACE=`echo "${MAX} ${count}" | awk '{print ($1/2)-($2-($2%2))/2}'`; \ echo -ne " "; \ while [ $SPACE -gt 0 ];do echo -ne " ";let SPACE--;done; \ while [ $count -ge 0 ];do TEMP=`echo $count | awk '{printf "%02d" , $1+1}'`; echo -ne "$TEMP";let count--;done; \ echo "";done 01 030201 0504030201 07060504030201 090807060504030201 1110090807060504030201 13121110090807060504030201 151413121110090807060504030201 1716151413121110090807060504030201 19181716151413121110090807060504030201 212019181716151413121110090807060504030201 2322212019181716151413121110090807060504030201 25242322212019181716151413121110090807060504030201 272625242322212019181716151413121110090807060504030201 2928272625242322212019181716151413121110090807060504030201 31302928272625242322212019181716151413121110090807060504030201 333231302928272625242322212019181716151413121110090807060504030201 3534333231302928272625242322212019181716151413121110090807060504030201 37363534333231302928272625242322212019181716151413121110090807060504030201 393837363534333231302928272625242322212019181716151413121110090807060504030201 37363534333231302928272625242322212019181716151413121110090807060504030201 3534333231302928272625242322212019181716151413121110090807060504030201 333231302928272625242322212019181716151413121110090807060504030201 31302928272625242322212019181716151413121110090807060504030201 2928272625242322212019181716151413121110090807060504030201 272625242322212019181716151413121110090807060504030201 25242322212019181716151413121110090807060504030201 2322212019181716151413121110090807060504030201 212019181716151413121110090807060504030201 19181716151413121110090807060504030201 1716151413121110090807060504030201 151413121110090807060504030201 13121110090807060504030201 1110090807060504030201 090807060504030201 07060504030201 0504030201 030201 01 ■昔の本の挿し絵は、よく見ると、こんな感じでした。 $ MAX=40;for count in `seq 1 2 $MAX`;do \ SPACE=`echo "${MAX} ${count}" | awk '{print ($1/2)-($2-($2%2))/2}'`; \ while [ $SPACE -gt 1 ];do echo -ne " ";let SPACE--;done; \ while [ $count -ne 0 ];do echo -ne ". ";let count--;done; \ echo "";done; \ MAX=36;for count in `seq $MAX -2 0`;do \ SPACE=`echo "${MAX} ${count}" | awk '{print ($1/2)-($2-($2%2))/2}'`; \ while [ $SPACE -ge 0 ];do echo -ne " ";let SPACE--;done; \ while [ $count -ge 0 ];do echo -ne ". ";let count--;done; \ echo "";done . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ■変数MAXの半分が意味するところ。 MAX=40;for count in `seq 1 2 $MAX`;do \ SPACE=`echo "${MAX} ${count}" | awk '{print ($1/2)-($2-($2%2))/2}'`; \ while [ $SPACE -gt 1 ];do echo -ne ". ";let SPACE--;done; \ while [ $count -ne 0 ];do echo -ne "/ ";let count--;done; \ echo "";done; \ MAX=36;for count in `seq $MAX -2 0`;do \ SPACE=`echo "${MAX} ${count}" | awk '{print ($1/2)-($2-($2%2))/2}'`; \ while [ $SPACE -ge 0 ];do echo -ne ". ";let SPACE--;done; \ while [ $count -ge 0 ];do echo -ne "/ ";let count--;done; \ echo "";done . . . . . . . . . . . . . . . . . . . / . . . . . . . . . . . . . . . . . . / / / . . . . . . . . . . . . . . . . . / / / / / . . . . . . . . . . . . . . . . / / / / / / / . . . . . . . . . . . . . . . / / / / / / / / / . . . . . . . . . . . . . . / / / / / / / / / / / . . . . . . . . . . . . . / / / / / / / / / / / / / . . . . . . . . . . . . / / / / / / / / / / / / / / / . . . . . . . . . . . / / / / / / / / / / / / / / / / / . . . . . . . . . . / / / / / / / / / / / / / / / / / / / . . . . . . . . . / / / / / / / / / / / / / / / / / / / / / . . . . . . . . / / / / / / / / / / / / / / / / / / / / / / / . . . . . . . / / / / / / / / / / / / / / / / / / / / / / / / / . . . . . . / / / / / / / / / / / / / / / / / / / / / / / / / / / . . . . . / / / / / / / / / / / / / / / / / / / / / / / / / / / / / . . . . / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / . . . / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / . . / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / . / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / . / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / . . / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / . . . / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / . . . . / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / . . . . . / / / / / / / / / / / / / / / / / / / / / / / / / / / / / . . . . . . / / / / / / / / / / / / / / / / / / / / / / / / / / / . . . . . . . / / / / / / / / / / / / / / / / / / / / / / / / / . . . . . . . . / / / / / / / / / / / / / / / / / / / / / / / . . . . . . . . . / / / / / / / / / / / / / / / / / / / / / . . . . . . . . . . / / / / / / / / / / / / / / / / / / / . . . . . . . . . . . / / / / / / / / / / / / / / / / / . . . . . . . . . . . . / / / / / / / / / / / / / / / . . . . . . . . . . . . . / / / / / / / / / / / / / . . . . . . . . . . . . . . / / / / / / / / / / / . . . . . . . . . . . . . . . / / / / / / / / / . . . . . . . . . . . . . . . . / / / / / / / . . . . . . . . . . . . . . . . . / / / / / . . . . . . . . . . . . . . . . . . / / / . . . . . . . . . . . . . . . . . . . / ■最後にひし形は、ひし形らしくする。 $ cat new MAX=40;for count in `seq 1 2 $MAX`;do \ SPACE=`echo "${MAX} ${count}" | awk '{print ($1/2)-($2-($2%2))/2}'`; \ while [ $SPACE -gt 1 ];do echo -ne " ";let SPACE--;done; \ while [ $count -ne 0 ];do echo -ne ". ";let count--;done; \ echo "";done; \ MAX=36;for count in `seq $MAX -2 0`;do \ SPACE=`echo "${MAX} ${count}" | awk '{print ($1/2)-($2-($2%2))/2}'`; \ while [ $SPACE -ge 0 ];do echo -ne " ";let SPACE--;done; \ while [ $count -ge 0 ];do echo -ne ". ";let count--;done; \ echo "";done $ /bin/bash new | awk '( NF%3 == 1 ) {print}' . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .