More Related Content
Similar to シェルスクリプトワークショップ資料 - 初心者向け「シェル芸」 (20)
シェルスクリプトワークショップ資料 - 初心者向け「シェル芸」
- 3. 自己紹介
「日本 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 日間、よろしくお願いします
- 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 日
シェルスクリプトワークショップ
@鳥取環境大学
単に整合が取れていない言い訳かもしれません
- 7. 我が家での活用例
コンテンツ Proxy サーバー
いわゆる広告削除
サーバー異常の iPhone へのプッシュ通知
curl で簡単に通知できます
年賀状、喪中ハガキ印刷
下手な印刷ソフトよりも便利です
http://gauc.no-ip.org/awk-users-jp/日本 GNU AWK ユーザー会 斉藤 @hi_saito - 7 -
2014 年 12 月 13, 14 日
シェルスクリプトワークショップ
@鳥取環境大学
シェルでほとんどのことができます
- 9. シェル芸とは?
シェル芸とは、現代においてもっとも過激と
目される CLI ワンライナー原理主義の一派。
武田久美子を教祖とし、夏になると信者は女
も男も老いも若きも貝がらビキニで海辺を
ホーミタイする危険な思想である。
アンサイクロペディア
http://gauc.no-ip.org/awk-users-jp/日本 GNU AWK ユーザー会 斉藤 @hi_saito - 9 -
2014 年 12 月 13, 14 日
シェルスクリプトワークショップ
@鳥取環境大学
ネタが古くて 30 代後半でないと分からない上、違います!
- 12. 基礎を学ぶ
基礎を学びます
いかにパイプで処理を行うか
ちょっと変わったコマンドの使い方
grep, xargs など
Map Reduce のようなもの
集計の基礎を行います
http://gauc.no-ip.org/awk-users-jp/日本 GNU AWK ユーザー会 斉藤 @hi_saito - 12 -
2014 年 12 月 13, 14 日
シェルスクリプトワークショップ
@鳥取環境大学
今までのシェル芸勉強会よりも簡単です
- 13. 重要なこと
できなくても構いません
得意、不得意があります
答えが違っても構いません
TIMTOWTDI の精神でやりましょう
手を動かしてください
頭ではなく手を動かしてください
http://gauc.no-ip.org/awk-users-jp/日本 GNU AWK ユーザー会 斉藤 @hi_saito - 13 -
2014 年 12 月 13, 14 日
シェルスクリプトワークショップ
@鳥取環境大学
頭もフル活用してください
- 15. 問題 1
1 から 100 までを足してください
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 日
シェルスクリプトワークショップ
@鳥取環境大学
$ seq 1 100 | xargs | tr ' ' '+' | bc
$ seq 1 100 | xargs | sed 's:[ ]:+:g' | bc
$ seq 1 100 | awk '{v+=$0}END{print v}'
List: 解答例 1
xargs コマンドの使い方を知ろう
sed の区切りは "/" ではなく、":" が便利
Demo
- 18. 解答例 2
http://gauc.no-ip.org/awk-users-jp/日本 GNU AWK ユーザー会 斉藤 @hi_saito - 18 -
2014 年 12 月 13, 14 日
シェルスクリプトワークショップ
@鳥取環境大学
$ echo 'とうきょうとっきょきょかきょくきょかきょくちょう' |
grep -o 'きょ' |
wc -l
$ echo 'とうきょうとっきょきょかきょくきょかきょくちょう' |
awk '{print gsub(/きょ/, "")}'
List: 解答例 2
grep の -o オプションは便利
Demo
- 20. 解答例 3
http://gauc.no-ip.org/awk-users-jp/日本 GNU AWK ユーザー会 斉藤 @hi_saito - 20 -
2014 年 12 月 13, 14 日
シェルスクリプトワークショップ
@鳥取環境大学
$ echo -n 'とうきょうとっきょきょかきょくきょかきょくちょう' |
sed 's:.:&n:g' |
sort | uniq -c | sort -nr
$ echo 'とうきょうとっきょきょかきょくきょかきょくちょう' |
sed 's:.:&n:g' |
awk 'NF' |
sort | uniq -c | sort -nr
List: 解答例 3
"sort | uniq -c | sort -n" は慣用句
空行削除は AWK で
Demo
- 21. 問題 4
「1 2 3 4 5 6 7 8 9 10」を 2 文字づつフリップ
してください
http://gauc.no-ip.org/awk-users-jp/日本 GNU AWK ユーザー会 斉藤 @hi_saito - 21 -
2014 年 12 月 13, 14 日
シェルスクリプトワークショップ
@鳥取環境大学
- 23. 問題 5
1 から 100 までを FizzBuzz してください
3 の倍数の時に Fizz、5 の倍数の時に Buzz
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 日
シェルスクリプトワークショップ
@鳥取環境大学
$ seq 1 100 |
awk '{print $0%15?$0%5?$0%3?$0:"Fizz":"Buzz":"FizzBuzz"}'
List: 解答例 5
これはいろいろな方法があると思います
Demo