Movatterモバイル変換


[0]ホーム

URL:


博文 斉藤, profile picture
Uploaded by博文 斉藤
PPTX, PDF17,033 views

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

シェルスクリプトワークショップ資料です。

Embed presentation

Downloaded 91 times
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.0http://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.gzhttp://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.gzList: 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 日シェルスクリプトワークショップ@鳥取環境大学
解答例 1http://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}' |shList: 解答例 1 xargs コマンドの使い方を知ろう file コマンドでファイル種類を判別 確認後に最後に Shell に渡して実行Demo
問題 2 テキストファイルだけを text/ ディレクトリにコピーしてください 拡張子だけで判断しないでくださいhttp://gauc.no-ip.org/awk-users-jp/日本 GNU AWK ユーザー会 斉藤 @hi_saito - 17 -2014 年 12 月 13, 14 日シェルスクリプトワークショップ@鳥取環境大学
解答例 2http://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}' |shList: 解答例 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 日シェルスクリプトワークショップ@鳥取環境大学
解答例 3http://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:' |shList: 解答例 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 日シェルスクリプトワークショップ@鳥取環境大学
解答例 4http://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 日シェルスクリプトワークショップ@鳥取環境大学
解答例 5http://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 日シェルスクリプトワークショップ@鳥取環境大学
解答例 6http://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 日シェルスクリプトワークショップ@鳥取環境大学
解答例 Xhttp://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.pngList: 解答例 X 覚える必要はありません。Demo
問題 XX 以下の住所を縦書きで TTF 化してください 鳥取県鳥取市,若葉台北1-1-1,鳥取環境大学 いわゆる宛名書きですhttp://gauc.no-ip.org/awk-users-jp/日本 GNU AWK ユーザー会 斉藤 @hi_saito - 29 -2014 年 12 月 13, 14 日シェルスクリプトワークショップ@鳥取環境大学
解答例 XXhttp://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.pngList: 解答例 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 日シェルスクリプトワークショップ@鳥取環境大学ご清聴ありがとうございました

Recommended

PPTX
シェルスクリプトワークショップ資料 - 初心者向け「シェル芸」
PPTX
OSC・シェルのプロが語る『make を使ったデータ処理。』 【make 教】 - OSC2015 Tokyo/Spring 発表資料
PDF
GitLab + Dokku で作る CI/CD 環境
PDF
GNU awk (gawk) を用いた Apache ログ解析方法
PDF
awk v.s. bashどっちが強い?@OSC2011Tokyo
PPTX
Node.js - sleep sort algorithm
PDF
Sinatra and heroku for mac
PDF
Google container builderと友だちになるまで
PDF
ヒカルのGo 資料 Webアプリケーションの作り方
PDF
ocamloptの全体像
PDF
GoらしいAPIを求める旅路 (Go Conference 2018 Spring)
PDF
ご注文は監視自動化ですか?
PPT
Python開発環境三種の神器
PDF
オンプレでPrivate Registry使ったDockerイメージの運用について
PDF
Go言語で作る webアプリ@gocon 2013 spring
PDF
NDS#31
PDF
Go言語によるwebアプリの作り方
PDF
LINQ in Unity
PDF
日本 GNU AWK ユーザー会スライド 2 - OSC2012 Tokyo/Fall
PDF
Niigata.pm #1
PDF
Go言語入門者が Webアプリケーション を作ってみた話 #devfest #gdgkyoto
PDF
HiRoshimaR6_ExplodingBoxplot
PDF
Gws 20140418 camel_groovy
PDF
Fabric Essentials
PDF
Consul は 全自動オーケストレーションの 夢を見るか?
PDF
Linux女子部第二回勉強会usp友の会
PDF
日本 GNU AWK ユーザー会スライド 1 - OSC2012 Tokyo/Fall
PDF
Usptomonokai 20111028
PPTX
C++のビルド高速化について
PDF
Usp友の会勉強会、ジャクソン構造図の巻(前編)

More Related Content

PPTX
シェルスクリプトワークショップ資料 - 初心者向け「シェル芸」
PPTX
OSC・シェルのプロが語る『make を使ったデータ処理。』 【make 教】 - OSC2015 Tokyo/Spring 発表資料
PDF
GitLab + Dokku で作る CI/CD 環境
PDF
GNU awk (gawk) を用いた Apache ログ解析方法
PDF
awk v.s. bashどっちが強い?@OSC2011Tokyo
PPTX
Node.js - sleep sort algorithm
PDF
Sinatra and heroku for mac
PDF
Google container builderと友だちになるまで
シェルスクリプトワークショップ資料 - 初心者向け「シェル芸」
OSC・シェルのプロが語る『make を使ったデータ処理。』 【make 教】 - OSC2015 Tokyo/Spring 発表資料
GitLab + Dokku で作る CI/CD 環境
GNU awk (gawk) を用いた Apache ログ解析方法
awk v.s. bashどっちが強い?@OSC2011Tokyo
Node.js - sleep sort algorithm
Sinatra and heroku for mac
Google container builderと友だちになるまで

What's hot

PDF
ヒカルのGo 資料 Webアプリケーションの作り方
PDF
ocamloptの全体像
PDF
GoらしいAPIを求める旅路 (Go Conference 2018 Spring)
PDF
ご注文は監視自動化ですか?
PPT
Python開発環境三種の神器
PDF
オンプレでPrivate Registry使ったDockerイメージの運用について
PDF
Go言語で作る webアプリ@gocon 2013 spring
PDF
NDS#31
PDF
Go言語によるwebアプリの作り方
PDF
LINQ in Unity
PDF
日本 GNU AWK ユーザー会スライド 2 - OSC2012 Tokyo/Fall
PDF
Niigata.pm #1
PDF
Go言語入門者が Webアプリケーション を作ってみた話 #devfest #gdgkyoto
PDF
HiRoshimaR6_ExplodingBoxplot
PDF
Gws 20140418 camel_groovy
PDF
Fabric Essentials
PDF
Consul は 全自動オーケストレーションの 夢を見るか?
ヒカルのGo 資料 Webアプリケーションの作り方
ocamloptの全体像
GoらしいAPIを求める旅路 (Go Conference 2018 Spring)
ご注文は監視自動化ですか?
Python開発環境三種の神器
オンプレでPrivate Registry使ったDockerイメージの運用について
Go言語で作る webアプリ@gocon 2013 spring
NDS#31
Go言語によるwebアプリの作り方
LINQ in Unity
日本 GNU AWK ユーザー会スライド 2 - OSC2012 Tokyo/Fall
Niigata.pm #1
Go言語入門者が Webアプリケーション を作ってみた話 #devfest #gdgkyoto
HiRoshimaR6_ExplodingBoxplot
Gws 20140418 camel_groovy
Fabric Essentials
Consul は 全自動オーケストレーションの 夢を見るか?

Viewers also liked

PDF
Linux女子部第二回勉強会usp友の会
PDF
日本 GNU AWK ユーザー会スライド 1 - OSC2012 Tokyo/Fall
PDF
Usptomonokai 20111028
PPTX
C++のビルド高速化について
PDF
Usp友の会勉強会、ジャクソン構造図の巻(前編)
PDF
awk入門
ODP
FreeBSDのブートプロセス
PDF
Docker 基本のおさらい
ODP
シェルスクリプトを極める
PDF
Awk勉強会用資料
ODP
Bashのヒストリ展開を活用する
PDF
第31回WebSig会議【セッション2】 タブレットが与える影響について考える
ODP
正規表現
PDF
弾幕の科学――モデル化、生成、ランク、おもてなし
PPTX
確率ロボティクス第九回
PDF
Usp友の会勉強会、ジャクソン構造図の巻(後編)
PDF
東方Projectにみる弾幕演出とゲームプレイ
ODP
仕事で使えるシェルスクリプト
PDF
2015.08.29 JUS共催勉強会資料
PDF
Tips for bash script
Linux女子部第二回勉強会usp友の会
日本 GNU AWK ユーザー会スライド 1 - OSC2012 Tokyo/Fall
Usptomonokai 20111028
C++のビルド高速化について
Usp友の会勉強会、ジャクソン構造図の巻(前編)
awk入門
FreeBSDのブートプロセス
Docker 基本のおさらい
シェルスクリプトを極める
Awk勉強会用資料
Bashのヒストリ展開を活用する
第31回WebSig会議【セッション2】 タブレットが与える影響について考える
正規表現
弾幕の科学――モデル化、生成、ランク、おもてなし
確率ロボティクス第九回
Usp友の会勉強会、ジャクソン構造図の巻(後編)
東方Projectにみる弾幕演出とゲームプレイ
仕事で使えるシェルスクリプト
2015.08.29 JUS共催勉強会資料
Tips for bash script

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

PDF
20130413シェル芸勉強会スライド
PDF
シェル芸初心者によるシェル芸入門
 
PPTX
難読化シェル芸
PDF
シェル芸初心者によるシェル芸入門 (修正版)
 
PDF
USP友の会第五回シェル芸勉強会問題だけスライド
ODP
楽しい怪しいシェルスクリプト - 第4回つくらぐ勉強会
PDF
20131102 第7回シェル芸勉強会
PDF
2012年10月27日 Hbstudy#38
PPTX
USP 友の会 LT 資料 20130413
PDF
20130216 シェル芸爆破デスマッチ勉強会
PDF
20130223 OSC Tokyo/Spring
PDF
OSC2012 Tokyo Spring, USP lab. presentation
PDF
20130622第5回シェル芸勉強会スライド
PDF
jus & USP友の会共催 シェルワンライナー勉強会@関西(第11回シェル芸勉強会)
PDF
20130824 第六回チャンピオンシップシェル芸ランナー勉強会 in LLまつり
PDF
20131222 第8回シェル芸勉強会スライド
PDF
20171223 シェル芸勉強会in大都会
PDF
「はじめよう、シェル芸」オープンキャンプin南島原2020/OpenCamp in Minami-shimabara online
PPTX
20150201 シェル芸勉強会LT GlueLangについて (シェル書いてますが何か?)
20130413シェル芸勉強会スライド
シェル芸初心者によるシェル芸入門
 
難読化シェル芸
シェル芸初心者によるシェル芸入門 (修正版)
 
USP友の会第五回シェル芸勉強会問題だけスライド
楽しい怪しいシェルスクリプト - 第4回つくらぐ勉強会
20131102 第7回シェル芸勉強会
2012年10月27日 Hbstudy#38
USP 友の会 LT 資料 20130413
20130216 シェル芸爆破デスマッチ勉強会
20130223 OSC Tokyo/Spring
OSC2012 Tokyo Spring, USP lab. presentation
20130622第5回シェル芸勉強会スライド
jus & USP友の会共催 シェルワンライナー勉強会@関西(第11回シェル芸勉強会)
20130824 第六回チャンピオンシップシェル芸ランナー勉強会 in LLまつり
20131222 第8回シェル芸勉強会スライド
20171223 シェル芸勉強会in大都会
「はじめよう、シェル芸」オープンキャンプin南島原2020/OpenCamp in Minami-shimabara online
20150201 シェル芸勉強会LT GlueLangについて (シェル書いてますが何か?)

More from 博文 斉藤

PDF
お手軽並列処理
PDF
 Obsidian Talk JP - Template & Daily notes - 2021-09-04
PDF
Obsidian Talk JP 資料 - 2021-10-15
PPTX
curl で iPhone にプッシュ通知しよう
PPT
「やっちまったぁ!」を防ごう!
PDF
日本 GNU AWK ユーザー会チラシ - OSC2012 Tokyo/Fall
PPTX
Shell で制限付き並列処理をしよう
PDF
Markdown で行こう!
お手軽並列処理
 Obsidian Talk JP - Template & Daily notes - 2021-09-04
Obsidian Talk JP 資料 - 2021-10-15
curl で iPhone にプッシュ通知しよう
「やっちまったぁ!」を防ごう!
日本 GNU AWK ユーザー会チラシ - OSC2012 Tokyo/Fall
Shell で制限付き並列処理をしよう
Markdown で行こう!

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

  • 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.
    自己紹介 「日本 GNUAWK ユーザー会」会長 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 日シェルスクリプトワークショップ@鳥取環境大学単に整合が取れていない言い訳かもしれません
  • 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.0http://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.gzhttp://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.gzList: 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.
    解答例 1http://gauc.no-ip.org/awk-users-jp/日本 GNUAWK ユーザー会 斉藤 @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}' |shList: 解答例 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.
    解答例 2http://gauc.no-ip.org/awk-users-jp/日本 GNUAWK ユーザー会 斉藤 @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}' |shList: 解答例 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.
    解答例 3http://gauc.no-ip.org/awk-users-jp/日本 GNUAWK ユーザー会 斉藤 @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:' |shList: 解答例 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.
    解答例 4http://gauc.no-ip.org/awk-users-jp/日本 GNUAWK ユーザー会 斉藤 @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.
    解答例 5http://gauc.no-ip.org/awk-users-jp/日本 GNUAWK ユーザー会 斉藤 @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.
    解答例 6http://gauc.no-ip.org/awk-users-jp/日本 GNUAWK ユーザー会 斉藤 @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.
    解答例 Xhttp://gauc.no-ip.org/awk-users-jp/日本 GNUAWK ユーザー会 斉藤 @hi_saito - 28 -2014 年 12 月 13, 14 日シェルスクリプトワークショップ@鳥取環境大学$ echo '鳥取県鳥取市,若葉台北1-1-1,鳥取環境 大学' |sed 's:$:様:' |tr ',' 'n' |convert -pointsize 40 -font aoyagikouzanfont2.ttf label:@- jusyo.pngList: 解答例 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.
    解答例 XXhttp://gauc.no-ip.org/awk-users-jp/日本 GNUAWK ユーザー会 斉藤 @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.pngList: 解答例 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 日シェルスクリプトワークショップ@鳥取環境大学ご清聴ありがとうございました

[8]ページ先頭

©2009-2025 Movatter.jp