Submit Search
シェルスクリプトワークショップ資料 - 上級者向け「シェル芸」
•
Download as PPTX, PDF
•
59 likes
•
17,007 views
博文 斉藤
Follow
シェルスクリプトワークショップ資料です。
Read less
Read more
Gallery
Report
Share
Gallery
Report
Share
1 of 32
Download now
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 日 シェルスクリプトワークショップ @鳥取環境大学 ご清聴ありがとうございました
Download now