SlideShare a Scribd company logo
http://gauc.no-ip.org/awk-users-jp/日本 GNU AWK ユーザー会 斉藤 @hi_saito - 1 -
2014 年 12 月 13, 14 日
シェルスクリプトワークショップ
@鳥取環境大学
jus 勉強会
シェルスクリプトワークショップ
「シェル芸」を極める
日本 GNU AWK ユーザー会
斉藤 博文
http://gauc.no-ip.org/awk-users-jp/日本 GNU AWK ユーザー会 斉藤 @hi_saito - 2 -
2014 年 12 月 13, 14 日
シェルスクリプトワークショップ
@鳥取環境大学
はじめに
自己紹介
 「日本 GNU AWK ユーザー会」会長
 http://gauc.no-ip.org/awk-users-jp/
 hi_saito@yk.rim.or.jp
 @hi_saito
 USP Magazine, Codezine に連載中
http://gauc.no-ip.org/awk-users-jp/日本 GNU AWK ユーザー会 斉藤 @hi_saito - 3 -
2014 年 12 月 13, 14 日
シェルスクリプトワークショップ
@鳥取環境大学
2 日間、よろしくお願いします
勉強会で重要なこと
 質問しよう
 積極的に質問をしてください
 振り返ろう
 手を動かして実際に試そう
 大したことないことを分かろう
 自分もいつかは講師をしよう
http://gauc.no-ip.org/awk-users-jp/日本 GNU AWK ユーザー会 斉藤 @hi_saito - 4 -
2014 年 12 月 13, 14 日
シェルスクリプトワークショップ
@鳥取環境大学
特に難しいことは話しません
他の講義とダブる?
 それは基本だからです
 それは重要だからです
 それは間違えやすいからです
http://gauc.no-ip.org/awk-users-jp/日本 GNU AWK ユーザー会 斉藤 @hi_saito - 5 -
2014 年 12 月 13, 14 日
シェルスクリプトワークショップ
@鳥取環境大学
単に整合が取れていない言い訳かもしれません
http://gauc.no-ip.org/awk-users-jp/日本 GNU AWK ユーザー会 斉藤 @hi_saito - 6 -
2014 年 12 月 13, 14 日
シェルスクリプトワークショップ
@鳥取環境大学
シェル芸
シェル芸とは?
 シェル芸とは、現代においてもっとも過激と
目される CLI ワンライナー原理主義の一派。
武田久美子を教祖とし、夏になると信者は女
も男も老いも若きも貝がらビキニで海辺を
ホーミタイする危険な思想である。
 アンサイクロペディア
http://gauc.no-ip.org/awk-users-jp/日本 GNU AWK ユーザー会 斉藤 @hi_saito - 7 -
2014 年 12 月 13, 14 日
シェルスクリプトワークショップ
@鳥取環境大学
ネタが古くて 30 代後半でないと分からない上、違います!
シェル芸とは?
 マウスも使わず、ソースコードも残さず、GUI
ツールを立ち上げる間もなく、あらゆる調
査・計算・テキスト処理を CLI 端末へのコマ
ンド入力一撃で終わらすこと。
 シェル芸の定義バージョン 1.0
http://gauc.no-ip.org/awk-users-jp/日本 GNU AWK ユーザー会 斉藤 @hi_saito - 8 -
2014 年 12 月 13, 14 日
シェルスクリプトワークショップ
@鳥取環境大学
「USP 友の会」の上田会長の定義です
http://gauc.no-ip.org/awk-users-jp/日本 GNU AWK ユーザー会 斉藤 @hi_saito - 9 -
2014 年 12 月 13, 14 日
シェルスクリプトワークショップ
@鳥取環境大学
今回のテーマ
今回のテーマはファイル
 ファイルを拡張子で判断しない
 file コマンドが便利です
 ファイルのコピーや移動はどうすれば良いか
 実行前に確認できるようにする
 ファイルから必要な部分だけを抜き出す
 HTML, XML の扱いはどうすれば良いか
http://gauc.no-ip.org/awk-users-jp/日本 GNU AWK ユーザー会 斉藤 @hi_saito - 10 -
2014 年 12 月 13, 14 日
シェルスクリプトワークショップ
@鳥取環境大学
今までのシェル芸勉強会にないネタです
重要なこと
 できなくても構いません
 得意、不得意があります
 答えが違っても構いません
 TIMTOWTDI の精神でやりましょう
 手を動かしてください
 頭ではなく手を動かしてください
http://gauc.no-ip.org/awk-users-jp/日本 GNU AWK ユーザー会 斉藤 @hi_saito - 11 -
2014 年 12 月 13, 14 日
シェルスクリプトワークショップ
@鳥取環境大学
頭もフル活用してください
最初に
 以下のファイルを落としてください
 http://gauc.no-ip.org/~hi_saito/jus/jus_sample.tar.gz
http://gauc.no-ip.org/awk-users-jp/日本 GNU AWK ユーザー会 斉藤 @hi_saito - 12 -
2014 年 12 月 13, 14 日
シェルスクリプトワークショップ
@鳥取環境大学
できれば、CLI でお願いします
$ mkdir jus
$ cd !$
$ wget http://gauc.no-ip.org/~hi_saito/jus/jus_sample.tar.gz
$ tar xzvf jus_sample.tar.gz
List: CLI での落とし方
問題のツリー
http://gauc.no-ip.org/awk-users-jp/日本 GNU AWK ユーザー会 斉藤 @hi_saito - 13 -
2014 年 12 月 13, 14 日
シェルスクリプトワークショップ
@鳥取環境大学
できれば、CLI でお願いします
jus_sample/
+--- all/
| +--- test_01.jpg
| +--- test_02.jpg
| +--- test_01.png
| +--- test_02.png
| +--- test_01.txt
| +--- test_02.txt
| +--- test_01.html
| +--- test_02.html
+--- images/
+--- text/
+--- thumbnail/
List: 問題のディレクトリ構造
確認してください
http://gauc.no-ip.org/awk-users-jp/日本 GNU AWK ユーザー会 斉藤 @hi_saito - 14 -
2014 年 12 月 13, 14 日
シェルスクリプトワークショップ
@鳥取環境大学
問題 (6 問あります)
問題 1
 画像ファイルだけを images/ ディレクトリに
移動してください
 拡張子だけで判断しないでください
http://gauc.no-ip.org/awk-users-jp/日本 GNU AWK ユーザー会 斉藤 @hi_saito - 15 -
2014 年 12 月 13, 14 日
シェルスクリプトワークショップ
@鳥取環境大学
解答例 1
http://gauc.no-ip.org/awk-users-jp/日本 GNU AWK ユーザー会 斉藤 @hi_saito - 16 -
2014 年 12 月 13, 14 日
シェルスクリプトワークショップ
@鳥取環境大学
$ find -type f |
xargs file |
grep 'image' |
awk -F':' '{print $1, $1}' |
awk '{sub(/all/, "images", $2); print $0}' |
awk '{print "mv " $0}' |
sh
List: 解答例 1
 xargs コマンドの使い方を知ろう
 file コマンドでファイル種類を判別
 確認後に最後に Shell に渡して実行
Demo
問題 2
 テキストファイルだけを text/ ディレクトリ
にコピーしてください
 拡張子だけで判断しないでください
http://gauc.no-ip.org/awk-users-jp/日本 GNU AWK ユーザー会 斉藤 @hi_saito - 17 -
2014 年 12 月 13, 14 日
シェルスクリプトワークショップ
@鳥取環境大学
解答例 2
http://gauc.no-ip.org/awk-users-jp/日本 GNU AWK ユーザー会 斉藤 @hi_saito - 18 -
2014 年 12 月 13, 14 日
シェルスクリプトワークショップ
@鳥取環境大学
$ find -type f |
xargs file |
grep 'text' |
awk -F':' '{print $1, $1}' |
awk '{sub(/all/, "text", $2); print $0}' |
awk '{print "cp " $0}' |
sh
List: 解答例 2
 xargs コマンドの使い方を知ろう
 file コマンドでファイル種類を判別
 確認後に最後に Shell に渡して実行
Demo
問題 3
 画像を 32 x 32 ピクセル PNG 形式に変換して
thumbnail/ ディレクトリに作成してくださ
い
 拡張子だけで判断しないでください
http://gauc.no-ip.org/awk-users-jp/日本 GNU AWK ユーザー会 斉藤 @hi_saito - 19 -
2014 年 12 月 13, 14 日
シェルスクリプトワークショップ
@鳥取環境大学
解答例 3
http://gauc.no-ip.org/awk-users-jp/日本 GNU AWK ユーザー会 斉藤 @hi_saito - 20 -
2014 年 12 月 13, 14 日
シェルスクリプトワークショップ
@鳥取環境大学
$ find images/ -type f |
awk '{print $1, $1}' |
sed 's: images: thumbnail:' |
sed 's:^:convert -geometry 32x32! :' |
sed 's:$:.png:' |
sh
List: 解答例 3
 sed の区切りは "/" ではなく、":" が便利
 確認後に最後に Shell に渡して実行
Demo
問題 4
 test_01.html, test_02.html のタイトルを
抜き出してください
 改行の有無をどうするかがポイントです
http://gauc.no-ip.org/awk-users-jp/日本 GNU AWK ユーザー会 斉藤 @hi_saito - 21 -
2014 年 12 月 13, 14 日
シェルスクリプトワークショップ
@鳥取環境大学
解答例 4
http://gauc.no-ip.org/awk-users-jp/日本 GNU AWK ユーザー会 斉藤 @hi_saito - 22 -
2014 年 12 月 13, 14 日
シェルスクリプトワークショップ
@鳥取環境大学
$ find text/ -type f |
xargs file |
grep 'HTML' |
awk -F':' '{print $1}' |
xargs -n 1 cat |
tr -d 'n' |
grep -Eoi '<title>[^<]+</title>' |
sed -r 's:</?[^>]+>::g'
List: 解答例 4
 XML, HTML は一旦改行を正しく付け直す
 sed の区切りは "/" ではなく、":" が便利
Demo
問題 5
 test_01.html, test_02.html の HTML タ
グを削除してください
 改行の有無をどうするかがポイントです
http://gauc.no-ip.org/awk-users-jp/日本 GNU AWK ユーザー会 斉藤 @hi_saito - 23 -
2014 年 12 月 13, 14 日
シェルスクリプトワークショップ
@鳥取環境大学
解答例 5
http://gauc.no-ip.org/awk-users-jp/日本 GNU AWK ユーザー会 斉藤 @hi_saito - 24 -
2014 年 12 月 13, 14 日
シェルスクリプトワークショップ
@鳥取環境大学
$ find text/ -type f |
xargs file |
grep 'HTML' |
awk -F':' '{print $1}' |
xargs sed -r 's:</?[^>]+>::g' |
awk 'NF'
List: 解答例 5
 sed での最小一致を学ぼう
 sed の区切りは "/" ではなく、":" が便利
 余計な改行は AWK で削除
Demo
問題 6
 できあがった階層構造をツリー表示してくだ
さい
 tree コマンドは使用禁止です
http://gauc.no-ip.org/awk-users-jp/日本 GNU AWK ユーザー会 斉藤 @hi_saito - 25 -
2014 年 12 月 13, 14 日
シェルスクリプトワークショップ
@鳥取環境大学
解答例 6
http://gauc.no-ip.org/awk-users-jp/日本 GNU AWK ユーザー会 斉藤 @hi_saito - 26 -
2014 年 12 月 13, 14 日
シェルスクリプトワークショップ
@鳥取環境大学
$ find |
sort |
tr '/' ' ' |
sed -r 's:[^ ]+[ ]: +--- :g' |
sed -r 's:--- : :g' |
sed -r 's:[ ]+[ ]: | :g'
List: 解答例 6
 sed は GNU 拡張が便利
Demo
問題 X
 以下の住所を横書きで TTF 化してください
 鳥取県鳥取市,若葉台北1-1-1,鳥取環境大学
 いわゆる宛名書きです
http://gauc.no-ip.org/awk-users-jp/日本 GNU AWK ユーザー会 斉藤 @hi_saito - 27 -
2014 年 12 月 13, 14 日
シェルスクリプトワークショップ
@鳥取環境大学
解答例 X
http://gauc.no-ip.org/awk-users-jp/日本 GNU AWK ユーザー会 斉藤 @hi_saito - 28 -
2014 年 12 月 13, 14 日
シェルスクリプトワークショップ
@鳥取環境大学
$ echo '鳥取県鳥取市,若葉台北1-1-1,鳥取環境 大学' |
sed 's:$:様:' |
tr ',' 'n' |
convert -pointsize 40 -font aoyagikouzanfont2.ttf 
label:@- jusyo.png
List: 解答例 X
 覚える必要はありません。
Demo
問題 XX
 以下の住所を縦書きで TTF 化してください
 鳥取県鳥取市,若葉台北1-1-1,鳥取環境大学
 いわゆる宛名書きです
http://gauc.no-ip.org/awk-users-jp/日本 GNU AWK ユーザー会 斉藤 @hi_saito - 29 -
2014 年 12 月 13, 14 日
シェルスクリプトワークショップ
@鳥取環境大学
解答例 XX
http://gauc.no-ip.org/awk-users-jp/日本 GNU AWK ユーザー会 斉藤 @hi_saito - 30 -
2014 年 12 月 13, 14 日
シェルスクリプトワークショップ
@鳥取環境大学
$ echo '鳥取県鳥取市,若葉台北1-1-1,鳥取環境 大学' |
sed 's:$:様:' |
tr ',' 'n' |
tac |
xargs -n1 -I% sh -c ' 
echo "%" |
grep -o '.' |
convert -pointsize 40 -font sazanami-mincho.ttf 
label:@- miff:-' 
|
convert - +append jusyo.png
List: 解答例 XX
 覚える必要はありません。
Demo
http://gauc.no-ip.org/awk-users-jp/日本 GNU AWK ユーザー会 斉藤 @hi_saito - 31 -
2014 年 12 月 13, 14 日
シェルスクリプトワークショップ
@鳥取環境大学
質問はありますか?
http://gauc.no-ip.org/awk-users-jp/日本 GNU AWK ユーザー会 斉藤 @hi_saito - 32 -
2014 年 12 月 13, 14 日
シェルスクリプトワークショップ
@鳥取環境大学
ご清聴ありがとうございました

More Related Content

シェルスクリプトワークショップ資料 - 上級者向け「シェル芸」

  • 1. http://gauc.no-ip.org/awk-users-jp/日本 GNU AWK ユーザー会 斉藤 @hi_saito - 1 - 2014 年 12 月 13, 14 日 シェルスクリプトワークショップ @鳥取環境大学 jus 勉強会 シェルスクリプトワークショップ 「シェル芸」を極める 日本 GNU AWK ユーザー会 斉藤 博文
  • 2. http://gauc.no-ip.org/awk-users-jp/日本 GNU AWK ユーザー会 斉藤 @hi_saito - 2 - 2014 年 12 月 13, 14 日 シェルスクリプトワークショップ @鳥取環境大学 はじめに
  • 3. 自己紹介  「日本 GNU AWK ユーザー会」会長  http://gauc.no-ip.org/awk-users-jp/  [email protected]  @hi_saito  USP Magazine, Codezine に連載中 http://gauc.no-ip.org/awk-users-jp/日本 GNU AWK ユーザー会 斉藤 @hi_saito - 3 - 2014 年 12 月 13, 14 日 シェルスクリプトワークショップ @鳥取環境大学 2 日間、よろしくお願いします
  • 4. 勉強会で重要なこと  質問しよう  積極的に質問をしてください  振り返ろう  手を動かして実際に試そう  大したことないことを分かろう  自分もいつかは講師をしよう http://gauc.no-ip.org/awk-users-jp/日本 GNU AWK ユーザー会 斉藤 @hi_saito - 4 - 2014 年 12 月 13, 14 日 シェルスクリプトワークショップ @鳥取環境大学 特に難しいことは話しません
  • 5. 他の講義とダブる?  それは基本だからです  それは重要だからです  それは間違えやすいからです http://gauc.no-ip.org/awk-users-jp/日本 GNU AWK ユーザー会 斉藤 @hi_saito - 5 - 2014 年 12 月 13, 14 日 シェルスクリプトワークショップ @鳥取環境大学 単に整合が取れていない言い訳かもしれません
  • 6. http://gauc.no-ip.org/awk-users-jp/日本 GNU AWK ユーザー会 斉藤 @hi_saito - 6 - 2014 年 12 月 13, 14 日 シェルスクリプトワークショップ @鳥取環境大学 シェル芸
  • 7. シェル芸とは?  シェル芸とは、現代においてもっとも過激と 目される CLI ワンライナー原理主義の一派。 武田久美子を教祖とし、夏になると信者は女 も男も老いも若きも貝がらビキニで海辺を ホーミタイする危険な思想である。  アンサイクロペディア http://gauc.no-ip.org/awk-users-jp/日本 GNU AWK ユーザー会 斉藤 @hi_saito - 7 - 2014 年 12 月 13, 14 日 シェルスクリプトワークショップ @鳥取環境大学 ネタが古くて 30 代後半でないと分からない上、違います!
  • 8. シェル芸とは?  マウスも使わず、ソースコードも残さず、GUI ツールを立ち上げる間もなく、あらゆる調 査・計算・テキスト処理を CLI 端末へのコマ ンド入力一撃で終わらすこと。  シェル芸の定義バージョン 1.0 http://gauc.no-ip.org/awk-users-jp/日本 GNU AWK ユーザー会 斉藤 @hi_saito - 8 - 2014 年 12 月 13, 14 日 シェルスクリプトワークショップ @鳥取環境大学 「USP 友の会」の上田会長の定義です
  • 9. http://gauc.no-ip.org/awk-users-jp/日本 GNU AWK ユーザー会 斉藤 @hi_saito - 9 - 2014 年 12 月 13, 14 日 シェルスクリプトワークショップ @鳥取環境大学 今回のテーマ
  • 10. 今回のテーマはファイル  ファイルを拡張子で判断しない  file コマンドが便利です  ファイルのコピーや移動はどうすれば良いか  実行前に確認できるようにする  ファイルから必要な部分だけを抜き出す  HTML, XML の扱いはどうすれば良いか http://gauc.no-ip.org/awk-users-jp/日本 GNU AWK ユーザー会 斉藤 @hi_saito - 10 - 2014 年 12 月 13, 14 日 シェルスクリプトワークショップ @鳥取環境大学 今までのシェル芸勉強会にないネタです
  • 11. 重要なこと  できなくても構いません  得意、不得意があります  答えが違っても構いません  TIMTOWTDI の精神でやりましょう  手を動かしてください  頭ではなく手を動かしてください http://gauc.no-ip.org/awk-users-jp/日本 GNU AWK ユーザー会 斉藤 @hi_saito - 11 - 2014 年 12 月 13, 14 日 シェルスクリプトワークショップ @鳥取環境大学 頭もフル活用してください
  • 12. 最初に  以下のファイルを落としてください  http://gauc.no-ip.org/~hi_saito/jus/jus_sample.tar.gz http://gauc.no-ip.org/awk-users-jp/日本 GNU AWK ユーザー会 斉藤 @hi_saito - 12 - 2014 年 12 月 13, 14 日 シェルスクリプトワークショップ @鳥取環境大学 できれば、CLI でお願いします $ mkdir jus $ cd !$ $ wget http://gauc.no-ip.org/~hi_saito/jus/jus_sample.tar.gz $ tar xzvf jus_sample.tar.gz List: CLI での落とし方
  • 13. 問題のツリー http://gauc.no-ip.org/awk-users-jp/日本 GNU AWK ユーザー会 斉藤 @hi_saito - 13 - 2014 年 12 月 13, 14 日 シェルスクリプトワークショップ @鳥取環境大学 できれば、CLI でお願いします jus_sample/ +--- all/ | +--- test_01.jpg | +--- test_02.jpg | +--- test_01.png | +--- test_02.png | +--- test_01.txt | +--- test_02.txt | +--- test_01.html | +--- test_02.html +--- images/ +--- text/ +--- thumbnail/ List: 問題のディレクトリ構造 確認してください
  • 14. http://gauc.no-ip.org/awk-users-jp/日本 GNU AWK ユーザー会 斉藤 @hi_saito - 14 - 2014 年 12 月 13, 14 日 シェルスクリプトワークショップ @鳥取環境大学 問題 (6 問あります)
  • 15. 問題 1  画像ファイルだけを images/ ディレクトリに 移動してください  拡張子だけで判断しないでください http://gauc.no-ip.org/awk-users-jp/日本 GNU AWK ユーザー会 斉藤 @hi_saito - 15 - 2014 年 12 月 13, 14 日 シェルスクリプトワークショップ @鳥取環境大学
  • 16. 解答例 1 http://gauc.no-ip.org/awk-users-jp/日本 GNU AWK ユーザー会 斉藤 @hi_saito - 16 - 2014 年 12 月 13, 14 日 シェルスクリプトワークショップ @鳥取環境大学 $ find -type f | xargs file | grep 'image' | awk -F':' '{print $1, $1}' | awk '{sub(/all/, "images", $2); print $0}' | awk '{print "mv " $0}' | sh List: 解答例 1  xargs コマンドの使い方を知ろう  file コマンドでファイル種類を判別  確認後に最後に Shell に渡して実行 Demo
  • 17. 問題 2  テキストファイルだけを text/ ディレクトリ にコピーしてください  拡張子だけで判断しないでください http://gauc.no-ip.org/awk-users-jp/日本 GNU AWK ユーザー会 斉藤 @hi_saito - 17 - 2014 年 12 月 13, 14 日 シェルスクリプトワークショップ @鳥取環境大学
  • 18. 解答例 2 http://gauc.no-ip.org/awk-users-jp/日本 GNU AWK ユーザー会 斉藤 @hi_saito - 18 - 2014 年 12 月 13, 14 日 シェルスクリプトワークショップ @鳥取環境大学 $ find -type f | xargs file | grep 'text' | awk -F':' '{print $1, $1}' | awk '{sub(/all/, "text", $2); print $0}' | awk '{print "cp " $0}' | sh List: 解答例 2  xargs コマンドの使い方を知ろう  file コマンドでファイル種類を判別  確認後に最後に Shell に渡して実行 Demo
  • 19. 問題 3  画像を 32 x 32 ピクセル PNG 形式に変換して thumbnail/ ディレクトリに作成してくださ い  拡張子だけで判断しないでください http://gauc.no-ip.org/awk-users-jp/日本 GNU AWK ユーザー会 斉藤 @hi_saito - 19 - 2014 年 12 月 13, 14 日 シェルスクリプトワークショップ @鳥取環境大学
  • 20. 解答例 3 http://gauc.no-ip.org/awk-users-jp/日本 GNU AWK ユーザー会 斉藤 @hi_saito - 20 - 2014 年 12 月 13, 14 日 シェルスクリプトワークショップ @鳥取環境大学 $ find images/ -type f | awk '{print $1, $1}' | sed 's: images: thumbnail:' | sed 's:^:convert -geometry 32x32! :' | sed 's:$:.png:' | sh List: 解答例 3  sed の区切りは "/" ではなく、":" が便利  確認後に最後に Shell に渡して実行 Demo
  • 21. 問題 4  test_01.html, test_02.html のタイトルを 抜き出してください  改行の有無をどうするかがポイントです http://gauc.no-ip.org/awk-users-jp/日本 GNU AWK ユーザー会 斉藤 @hi_saito - 21 - 2014 年 12 月 13, 14 日 シェルスクリプトワークショップ @鳥取環境大学
  • 22. 解答例 4 http://gauc.no-ip.org/awk-users-jp/日本 GNU AWK ユーザー会 斉藤 @hi_saito - 22 - 2014 年 12 月 13, 14 日 シェルスクリプトワークショップ @鳥取環境大学 $ find text/ -type f | xargs file | grep 'HTML' | awk -F':' '{print $1}' | xargs -n 1 cat | tr -d 'n' | grep -Eoi '<title>[^<]+</title>' | sed -r 's:</?[^>]+>::g' List: 解答例 4  XML, HTML は一旦改行を正しく付け直す  sed の区切りは "/" ではなく、":" が便利 Demo
  • 23. 問題 5  test_01.html, test_02.html の HTML タ グを削除してください  改行の有無をどうするかがポイントです http://gauc.no-ip.org/awk-users-jp/日本 GNU AWK ユーザー会 斉藤 @hi_saito - 23 - 2014 年 12 月 13, 14 日 シェルスクリプトワークショップ @鳥取環境大学
  • 24. 解答例 5 http://gauc.no-ip.org/awk-users-jp/日本 GNU AWK ユーザー会 斉藤 @hi_saito - 24 - 2014 年 12 月 13, 14 日 シェルスクリプトワークショップ @鳥取環境大学 $ find text/ -type f | xargs file | grep 'HTML' | awk -F':' '{print $1}' | xargs sed -r 's:</?[^>]+>::g' | awk 'NF' List: 解答例 5  sed での最小一致を学ぼう  sed の区切りは "/" ではなく、":" が便利  余計な改行は AWK で削除 Demo
  • 25. 問題 6  できあがった階層構造をツリー表示してくだ さい  tree コマンドは使用禁止です http://gauc.no-ip.org/awk-users-jp/日本 GNU AWK ユーザー会 斉藤 @hi_saito - 25 - 2014 年 12 月 13, 14 日 シェルスクリプトワークショップ @鳥取環境大学
  • 26. 解答例 6 http://gauc.no-ip.org/awk-users-jp/日本 GNU AWK ユーザー会 斉藤 @hi_saito - 26 - 2014 年 12 月 13, 14 日 シェルスクリプトワークショップ @鳥取環境大学 $ find | sort | tr '/' ' ' | sed -r 's:[^ ]+[ ]: +--- :g' | sed -r 's:--- : :g' | sed -r 's:[ ]+[ ]: | :g' List: 解答例 6  sed は GNU 拡張が便利 Demo
  • 27. 問題 X  以下の住所を横書きで TTF 化してください  鳥取県鳥取市,若葉台北1-1-1,鳥取環境大学  いわゆる宛名書きです http://gauc.no-ip.org/awk-users-jp/日本 GNU AWK ユーザー会 斉藤 @hi_saito - 27 - 2014 年 12 月 13, 14 日 シェルスクリプトワークショップ @鳥取環境大学
  • 28. 解答例 X http://gauc.no-ip.org/awk-users-jp/日本 GNU AWK ユーザー会 斉藤 @hi_saito - 28 - 2014 年 12 月 13, 14 日 シェルスクリプトワークショップ @鳥取環境大学 $ echo '鳥取県鳥取市,若葉台北1-1-1,鳥取環境 大学' | sed 's:$:様:' | tr ',' 'n' | convert -pointsize 40 -font aoyagikouzanfont2.ttf label:@- jusyo.png List: 解答例 X  覚える必要はありません。 Demo
  • 29. 問題 XX  以下の住所を縦書きで TTF 化してください  鳥取県鳥取市,若葉台北1-1-1,鳥取環境大学  いわゆる宛名書きです http://gauc.no-ip.org/awk-users-jp/日本 GNU AWK ユーザー会 斉藤 @hi_saito - 29 - 2014 年 12 月 13, 14 日 シェルスクリプトワークショップ @鳥取環境大学
  • 30. 解答例 XX http://gauc.no-ip.org/awk-users-jp/日本 GNU AWK ユーザー会 斉藤 @hi_saito - 30 - 2014 年 12 月 13, 14 日 シェルスクリプトワークショップ @鳥取環境大学 $ echo '鳥取県鳥取市,若葉台北1-1-1,鳥取環境 大学' | sed 's:$:様:' | tr ',' 'n' | tac | xargs -n1 -I% sh -c ' echo "%" | grep -o '.' | convert -pointsize 40 -font sazanami-mincho.ttf label:@- miff:-' | convert - +append jusyo.png List: 解答例 XX  覚える必要はありません。 Demo
  • 31. http://gauc.no-ip.org/awk-users-jp/日本 GNU AWK ユーザー会 斉藤 @hi_saito - 31 - 2014 年 12 月 13, 14 日 シェルスクリプトワークショップ @鳥取環境大学 質問はありますか?
  • 32. http://gauc.no-ip.org/awk-users-jp/日本 GNU AWK ユーザー会 斉藤 @hi_saito - 32 - 2014 年 12 月 13, 14 日 シェルスクリプトワークショップ @鳥取環境大学 ご清聴ありがとうございました