SlideShare una empresa de Scribd logo
1 de 26
Descargar para leer sin conexión
芸人を 目指すわけでは
ないけれど…
Tokaido LUG @ Nagoya
Masataka Kondo (@Masa_B_Kondo )
September 17th, 2016
Celebrating
Software Freedom Day!
Tokaido LUG at Nagoya
September 17th
, 2016
きっかけ :
● Macの近代化更新
– Mac mini(MC816J/A)
– Macbook Air (MC969LL/A)
● どちらもSandy Bridge
● CPUの性能は問題ないんだがUSB2.0は限界
– 一足飛びに現行CPUは費用がかさむ
– そうだMD101J/Aなら追い金なくても...?
Tokaido LUG at Nagoya
September 17th
, 2016
余談ではありますが :
● Ivy BridgeでもDDR3-10600で動作するらしい
– 実機を開封するとDDR3L-12800が鎮座
● 同一モデルでも製造年によって違うらしい
– 結局安全を見てDDR3L-12800を購入
● SSD化は最初から念頭に入っていた
– 予算の関係で512GBではなく480GB
● 光学ドライブは残す方針で
– セカンダリをHDDにするのもよくありますが
– あえて光学ドライブを持つメリットを享受
さて
Tokaido LUG at Nagoya
September 17th
, 2016
移行に伴う問題点 :
● 重くない?
– 重いです。
● JISキーボードだけど大丈夫?
– 普段はクラムシェルで使うからまぁええかなと
– 本当に嫌になったらトップケース交換もあり
– 実は持ち出して使う際にちょっとイライラきてる
● ストレージ容量足りないんじゃない?
– 写真は外付けHDDに逃がすことにしました
– iTunesのライブラリが…
Tokaido LUG at Nagoya
September 17th
, 2016
Appleよいらんことするなコラ
● 同期に失敗したファイルが勝手にdupされた
– (トラック名) 1.mp3 とか
Tokaido LUG at Nagoya
September 17th
, 2016
Appleよいらんことするなコラ
● ファイル名はID3タグがそのまま反映
Tokaido LUG at Nagoya
September 17th
, 2016
Appleよいらんことするなコラ
● なわけで、日本語の曲名がついたのはほぼ壊滅
Tokaido LUG at Nagoya
September 17th
, 2016
悪事はここには書ききれないほどあって
● Ver. Upに伴いライブラリが何度か剥奪される
– おかしい? 俺別ディレクトリ指定してたんだが...
– 一生懸命手動で移したのにまたかよ...
● ディレクトリを一時的に移動させた奴が認識されず
– 実はまだ一部作業が残ってます
● こういうのが積み重なって、移行前のmp3容量
は300GB近くありました
– 半分近くに減らせるという見込みはあった
Tokaido LUG at Nagoya
September 17th
, 2016
現状のディスク構成
Transcend
TS480G
Optical
Drive
(DVD-multi)microSDXC 128GB
via SD slot adaptor
Tokaido LUG at Nagoya
September 17th
, 2016
iTunesのライブラリを「押し込む」
● 先ほどのduplicateされた奴を全部削除
– これで半分、まだ努力が必要
● 聴かないことが明らかな曲は削除
– J-POPなどはなくてもええね
– 声優モノも相当絞り込み
– シングルCDもなくてもええよな
● ベスト盤?そんなもん必要なの?
– 他のCDでまかなえるQueenとか
– 逆に増えてしまう危険性もある
ぼちぼちと
手で直してたんだけど
自動化が筋では?
Tokaido LUG at Nagoya
September 17th
, 2016
サンプルは無難な奴
Tokaido LUG at Nagoya
September 17th
, 2016
移動に伴う問題点
● 自分がつけたいトラック名
01-Round Midnight.mp3
● iTunesが勝手につけるトラック名
01 'Round Midnight 1.mp3
● いずれにしろ移行元も移行先もファイル名に
空白を含む
● 空白があるとスクリプトに支障がある
Tokaido LUG at Nagoya
September 17th
, 2016
そういや俺ちゃんと勉強したことないな...
● 簡単なShell Scriptなんてすぐ書けるよね
● 単純な処理しかやらせなかった
● 1990年代にUNIXを体験した人の問題点
– 通常ログインシェルはcsh
– bshの機能では仕事ができない
– bashはインストールされてても/etc/loginにない?
● ログインシェルをbashに移行...が遅れた
– Linuxを使う場合でもtcshを選択
● One Linerでスクリプトを書く習慣が不足
少なくとも
「ファイル名に空白」
が困難を極めた
Tokaido LUG at Nagoya
September 17th
, 2016
ハマった事例について
● 元ファイルはこんな感じ(重複分は消してます)
$ ls -1
01 Off the Ground 1.mp3
02 Looking for Changes 1.mp3
03 Hope of Deliverance 1.mp3
04 Mistress and Maid 1.mp3
05 I Owe It All to You 1.mp3
06 Biker Like an Icon 1.mp3
07 Peace in the Neighbourfood 1.mp3
08 Golden Earth Girl 1.mp3
09 The Lovers that Never Were 1.mp3
10 Get Out of the Way 1.mp3
11 Winedark Open Sea 1.mp3
12 Cmon People 1.mp3
Tokaido LUG at Nagoya
September 17th
, 2016
表示はうまくいくんだが...
● 「echo」を「mv」にしてもうまくいかない
$ for i in * 1.mp3 ; do echo "${i/ 1.mp3/.mp3}" ; done
01 Off the Ground.mp3
02 Looking for Changes.mp3
03 Hope of Deliverance.mp3
04 Mistress and Maid.mp3
05 I Owe It All to You.mp3
06 Biker Like an Icon.mp3
(snip)…..
$ for i in * 1.mp3 ; do mv -f $i `echo "${i/ 1.mp3/.mp3}"` ;
done
usage: mv [-f | -i | -n] [-v] source target
mv [-f | -i | -n] [-v] source ... directory
$
Tokaido LUG at Nagoya
September 17th
, 2016
考えてみれば当たり前か
● mv $i... の時点でスペースが含まれるので
移行元ファイル自体が認識できない
● 変数$i自体にスペースが含まれなければよい
● さて、どうする...
– ぐぐると、エキスパートの方が答を出していた
http://nullpopopo.blogcube.info/2013/07/filename_replace.html
Tokaido LUG at Nagoya
September 17th
, 2016
変数の設定に手心を加えるのがミソ
● forループで回す変数から空白を置き換え実施
$ for A in $(ls | grep " " | sed -e s/" "/_/g) ;
   do mv "$(echo $A | sed -e s/_/" "/g)" $A ; done
$ ls -1
01_Off_the_Ground_1.mp3
02_Looking_for_Changes_1.mp3
03_Hope_of_Deliverance_1.mp3
04_Mistress_and_Maid_1.mp3
05_I_Owe_It_All_to_You_1.mp3
06_Biker_Like_an_Icon_1.mp3
07_Peace_in_the_Neighbourfood_1.mp3
08_Golden_Earth_Girl_1.mp3
09_The_Lovers_that Never_Were_1.mp3
10_Get_Out_of_the_Way_1.mp3
11_Winedark_Open_Sea_1.mp3
12_Cmon_People_1.mp3
Tokaido LUG at Nagoya
September 17th
, 2016
邪魔な空白がなければあとは楽
● sedを駆使して直していきます
$ for i in *_1.mp3 ;
do mv $i "$(echo $i | sed -e s/_1.mp3/.mp3/)" ; done
$ for i in *.mp3 ;
do mv $i "$(echo $i | sed -e s/_/-/)" ; done
$ for B in $(ls | grep _ ) ;
do mv $B "$(echo $B | sed -e s/_/" "/g )" ; done
$ ls -1
01-Off the Ground.mp3
02-Looking for Changes.mp3
03-Hope of Deliverance.mp3
04-Mistress and Maid.mp3
05-I Owe It All to You.mp3
06-Biker Like an Icon.mp3
(snip)….
Tokaido LUG at Nagoya
September 17th
, 2016
シェルスクリプト化するにはどうする?
● ファイル名をいじるハナシなので厄介
● 本来のファイル名を示したリストを使う
● 最初っからスペースを禁止したほうが楽?
– それでは進歩もないよね...(ぉ
● シェルスクリプトの要素って
– テキストファイルの中身をいじる
– ファイル名などをいじる
– バイナリファイルをいじる(外部フィルタなど)
● ま、とにかくちゃんと勉強したいな...と。
Tokaido LUG at Nagoya
September 17th
, 2016
思い切って買ったんですがまだ読み切れず
入門UNIXシェルプログラミング
―シェルの基礎から学ぶUNIXの世界
Bruce Blinn 著 / 山下 哲典 訳
ISBN 978-4797321944
Tokaido LUG at Nagoya
September 17th
, 2016
こっちはカルく読めるのでおすすめかな
UNIXという考え方
Mike Gancarz 著 / 芳尾 桂 訳
ISBN 978-4274064067

Más contenido relacionado

La actualidad más candente

Goodby Hatena, hello Sphinx
Goodby Hatena, hello SphinxGoodby Hatena, hello Sphinx
Goodby Hatena, hello Sphinx
Kouhei Maeda
 
Interactive Music II SuperCollider応用 2 - SuperColliderとPure Dataの連携
Interactive Music II SuperCollider応用 2 - SuperColliderとPure Dataの連携Interactive Music II SuperCollider応用 2 - SuperColliderとPure Dataの連携
Interactive Music II SuperCollider応用 2 - SuperColliderとPure Dataの連携
Atsushi Tadokoro
 
Xcodeでmrubyをステップ実行してみた
Xcodeでmrubyをステップ実行してみたXcodeでmrubyをステップ実行してみた
Xcodeでmrubyをステップ実行してみた
firewood
 
30日でできない!コンピューター自作入門 - カーネル/VM探検隊@つくば
30日でできない!コンピューター自作入門 - カーネル/VM探検隊@つくば30日でできない!コンピューター自作入門 - カーネル/VM探検隊@つくば
30日でできない!コンピューター自作入門 - カーネル/VM探検隊@つくば
Hirotaka Kawata
 

La actualidad más candente (20)

オープンソース開発と、 あるフレームバッファコンソールの話 ~名古屋応用編~
オープンソース開発と、あるフレームバッファコンソールの話~名古屋応用編~オープンソース開発と、あるフレームバッファコンソールの話~名古屋応用編~
オープンソース開発と、 あるフレームバッファコンソールの話 ~名古屋応用編~
 
Kansai mrb gr_sakura
Kansai mrb gr_sakuraKansai mrb gr_sakura
Kansai mrb gr_sakura
 
Goodby Hatena, hello Sphinx
Goodby Hatena, hello SphinxGoodby Hatena, hello Sphinx
Goodby Hatena, hello Sphinx
 
SoftlayerのCLIで遊ぼうとしたら
SoftlayerのCLIで遊ぼうとしたらSoftlayerのCLIで遊ぼうとしたら
SoftlayerのCLIで遊ぼうとしたら
 
マウスを使わないでキーボードで快適に生活する方法(GNU Screen/tmux/byobu/awesome)
マウスを使わないでキーボードで快適に生活する方法(GNU Screen/tmux/byobu/awesome)マウスを使わないでキーボードで快適に生活する方法(GNU Screen/tmux/byobu/awesome)
マウスを使わないでキーボードで快適に生活する方法(GNU Screen/tmux/byobu/awesome)
 
さくらのクラウドAPIをsacloudつかってさわってみた
さくらのクラウドAPIをsacloudつかってさわってみたさくらのクラウドAPIをsacloudつかってさわってみた
さくらのクラウドAPIをsacloudつかってさわってみた
 
あるmmapの話
あるmmapの話あるmmapの話
あるmmapの話
 
Interactive Music II SuperCollider応用 2 - SuperColliderとPure Dataの連携
Interactive Music II SuperCollider応用 2 - SuperColliderとPure Dataの連携Interactive Music II SuperCollider応用 2 - SuperColliderとPure Dataの連携
Interactive Music II SuperCollider応用 2 - SuperColliderとPure Dataの連携
 
TextMate
TextMateTextMate
TextMate
 
RaspberryPi Zero W で FreeBSD を動かす方法にやっと気がついたのと、USB OTGも動いてよかった。
RaspberryPi Zero W で FreeBSD を動かす方法にやっと気がついたのと、USB OTGも動いてよかった。RaspberryPi Zero W で FreeBSD を動かす方法にやっと気がついたのと、USB OTGも動いてよかった。
RaspberryPi Zero W で FreeBSD を動かす方法にやっと気がついたのと、USB OTGも動いてよかった。
 
【2000行弱!】x86用自作カーネルの紹介
【2000行弱!】x86用自作カーネルの紹介【2000行弱!】x86用自作カーネルの紹介
【2000行弱!】x86用自作カーネルの紹介
 
CD-ROMドライブ魔改造大作戦
CD-ROMドライブ魔改造大作戦CD-ROMドライブ魔改造大作戦
CD-ROMドライブ魔改造大作戦
 
快適な朝を実現するソリューションのご紹介
快適な朝を実現するソリューションのご紹介快適な朝を実現するソリューションのご紹介
快適な朝を実現するソリューションのご紹介
 
Ctb57 with god7
Ctb57 with god7Ctb57 with god7
Ctb57 with god7
 
Nodejsによるapiサーバ構築事例
Nodejsによるapiサーバ構築事例Nodejsによるapiサーバ構築事例
Nodejsによるapiサーバ構築事例
 
WEBページを表示するまで
WEBページを表示するまでWEBページを表示するまで
WEBページを表示するまで
 
最近のEjectダイジェスト
最近のEjectダイジェスト最近のEjectダイジェスト
最近のEjectダイジェスト
 
Xcodeでmrubyをステップ実行してみた
Xcodeでmrubyをステップ実行してみたXcodeでmrubyをステップ実行してみた
Xcodeでmrubyをステップ実行してみた
 
30日でできない!コンピューター自作入門 - カーネル/VM探検隊@つくば
30日でできない!コンピューター自作入門 - カーネル/VM探検隊@つくば30日でできない!コンピューター自作入門 - カーネル/VM探検隊@つくば
30日でできない!コンピューター自作入門 - カーネル/VM探検隊@つくば
 
はじめませんか? Bash on Windows
はじめませんか? Bash on Windowsはじめませんか? Bash on Windows
はじめませんか? Bash on Windows
 

Destacado

Git 道場 心:Git総論、心構え
Git 道場 心:Git総論、心構え Git 道場 心:Git総論、心構え
Git 道場 心:Git総論、心構え
Nobuhiro Iwamatsu
 

Destacado (20)

Osc2016 tokyo-spring-geeklog
Osc2016 tokyo-spring-geeklogOsc2016 tokyo-spring-geeklog
Osc2016 tokyo-spring-geeklog
 
アドベントカレンダー「愉悦について」
アドベントカレンダー「愉悦について」アドベントカレンダー「愉悦について」
アドベントカレンダー「愉悦について」
 
小江戸らぐ9月のオフな集まり(第98回) -東京電機大学神田キャンパス-
小江戸らぐ9月のオフな集まり(第98回) -東京電機大学神田キャンパス-小江戸らぐ9月のオフな集まり(第98回) -東京電機大学神田キャンパス-
小江戸らぐ9月のオフな集まり(第98回) -東京電機大学神田キャンパス-
 
LibreOfficeの品質向上活動について
LibreOfficeの品質向上活動についてLibreOfficeの品質向上活動について
LibreOfficeの品質向上活動について
 
ベジェ曲線を使ってみよう
ベジェ曲線を使ってみようベジェ曲線を使ってみよう
ベジェ曲線を使ってみよう
 
鹿児島らぐはじめました(オープンソースカンファレンス2015大分LT)
鹿児島らぐはじめました(オープンソースカンファレンス2015大分LT)鹿児島らぐはじめました(オープンソースカンファレンス2015大分LT)
鹿児島らぐはじめました(オープンソースカンファレンス2015大分LT)
 
Raspberry pi 用 toppers ssp シュリンク版(海賊版)の紹介
Raspberry pi 用 toppers ssp シュリンク版(海賊版)の紹介Raspberry pi 用 toppers ssp シュリンク版(海賊版)の紹介
Raspberry pi 用 toppers ssp シュリンク版(海賊版)の紹介
 
U38Nの WiFiモジュールを換装したハナシ
U38Nの WiFiモジュールを換装したハナシU38Nの WiFiモジュールを換装したハナシ
U38Nの WiFiモジュールを換装したハナシ
 
Tsume git
Tsume gitTsume git
Tsume git
 
Git 道場 心:Git総論、心構え
Git 道場 心:Git総論、心構え Git 道場 心:Git総論、心構え
Git 道場 心:Git総論、心構え
 
ゲーミングプラットホームのLutris
ゲーミングプラットホームのLutrisゲーミングプラットホームのLutris
ゲーミングプラットホームのLutris
 
LibreOffice Conference 2016 Brno 参加レポート
LibreOffice Conference 2016 Brno 参加レポートLibreOffice Conference 2016 Brno 参加レポート
LibreOffice Conference 2016 Brno 参加レポート
 
ビジネスモデル・キャンバスワークショップ 2015-05-30
ビジネスモデル・キャンバスワークショップ 2015-05-30ビジネスモデル・キャンバスワークショップ 2015-05-30
ビジネスモデル・キャンバスワークショップ 2015-05-30
 
Building LibreOffice local community in Japan through event handling
Building LibreOffice local community in Japan through event handlingBuilding LibreOffice local community in Japan through event handling
Building LibreOffice local community in Japan through event handling
 
鹿児島に引っ越しました
鹿児島に引っ越しました鹿児島に引っ越しました
鹿児島に引っ越しました
 
バグ報告・翻訳・パッケージング・コード修正・広報活動などなど―OSS に貢献してみるには?
バグ報告・翻訳・パッケージング・コード修正・広報活動などなど―OSS に貢献してみるには?バグ報告・翻訳・パッケージング・コード修正・広報活動などなど―OSS に貢献してみるには?
バグ報告・翻訳・パッケージング・コード修正・広報活動などなど―OSS に貢献してみるには?
 
今さら聞けない― Linuxコマンドラインツールテクニック (導入編)
今さら聞けない― Linuxコマンドラインツールテクニック (導入編)今さら聞けない― Linuxコマンドラインツールテクニック (導入編)
今さら聞けない― Linuxコマンドラインツールテクニック (導入編)
 
「やりなおし方について」Linuxブート情報の消し方
「やりなおし方について」Linuxブート情報の消し方「やりなおし方について」Linuxブート情報の消し方
「やりなおし方について」Linuxブート情報の消し方
 
海外イベントの可能性を探ろう
海外イベントの可能性を探ろう海外イベントの可能性を探ろう
海外イベントの可能性を探ろう
 
A Closer Look at Fonts and Font Rendering System on openSUSE
A Closer Look at Fonts and Font Rendering System on openSUSEA Closer Look at Fonts and Font Rendering System on openSUSE
A Closer Look at Fonts and Font Rendering System on openSUSE
 

Similar a 芸人を 目指すわけでは ないけれど…(n575) (6)

Rubyボードハンズオンテキスト
RubyボードハンズオンテキストRubyボードハンズオンテキスト
Rubyボードハンズオンテキスト
 
Getting started raspberry pi osc hamamatsu
Getting started raspberry pi osc hamamatsuGetting started raspberry pi osc hamamatsu
Getting started raspberry pi osc hamamatsu
 
Riscv+fpga200606
Riscv+fpga200606Riscv+fpga200606
Riscv+fpga200606
 
CyberAgentにおけるMongoDB
CyberAgentにおけるMongoDBCyberAgentにおけるMongoDB
CyberAgentにおけるMongoDB
 
NetBSD/evbarm on Raspberry Pi
NetBSD/evbarm on Raspberry PiNetBSD/evbarm on Raspberry Pi
NetBSD/evbarm on Raspberry Pi
 
はじめてのSSD,MicroSD,USBメモリ延命方法 in Linux Beginner for Linux long-lifetime in USB...
はじめてのSSD,MicroSD,USBメモリ延命方法 in Linux  Beginner for Linux long-lifetime in USB...はじめてのSSD,MicroSD,USBメモリ延命方法 in Linux  Beginner for Linux long-lifetime in USB...
はじめてのSSD,MicroSD,USBメモリ延命方法 in Linux Beginner for Linux long-lifetime in USB...
 

Más de Masataka Kondo

Más de Masataka Kondo (20)

OSC的 今日からはじめるランニング入門 (2023/1/28 E-2)
OSC的 今日からはじめるランニング入門 (2023/1/28 E-2)OSC的 今日からはじめるランニング入門 (2023/1/28 E-2)
OSC的 今日からはじめるランニング入門 (2023/1/28 E-2)
 
現地ロケのうらばなし : OSC 2023 Online / Osaka LT
現地ロケのうらばなし : OSC 2023 Online / Osaka LT現地ロケのうらばなし : OSC 2023 Online / Osaka LT
現地ロケのうらばなし : OSC 2023 Online / Osaka LT
 
OSC名古屋LT 「現地取材の重要性」
OSC名古屋LT 「現地取材の重要性」OSC名古屋LT 「現地取材の重要性」
OSC名古屋LT 「現地取材の重要性」
 
OSC名古屋2022 F-1 中小企業診断士試験・「経営情報システム」科目から見る...
OSC名古屋2022 F-1 中小企業診断士試験・「経営情報システム」科目から見る...OSC名古屋2022 F-1 中小企業診断士試験・「経営情報システム」科目から見る...
OSC名古屋2022 F-1 中小企業診断士試験・「経営情報システム」科目から見る...
 
OSC2022 Online / Spring 「Linuxで活用するデジタルカメラと写真撮影術」
OSC2022 Online / Spring 「Linuxで活用するデジタルカメラと写真撮影術」OSC2022 Online / Spring 「Linuxで活用するデジタルカメラと写真撮影術」
OSC2022 Online / Spring 「Linuxで活用するデジタルカメラと写真撮影術」
 
OSC福岡 : 航空機写真撮影入門 in FUKUOKA
OSC福岡 : 航空機写真撮影入門 in FUKUOKAOSC福岡 : 航空機写真撮影入門 in FUKUOKA
OSC福岡 : 航空機写真撮影入門 in FUKUOKA
 
200回記念LT : OSCオンライン開催を通じた地方創生への試み
200回記念LT : OSCオンライン開催を通じた地方創生への試み200回記念LT : OSCオンライン開催を通じた地方創生への試み
200回記念LT : OSCオンライン開催を通じた地方創生への試み
 
LT : 中小企業診断士試験を受験してきました
LT : 中小企業診断士試験を受験してきましたLT : 中小企業診断士試験を受験してきました
LT : 中小企業診断士試験を受験してきました
 
湾岸ミッドナイト勉強会 Overnight Cruise
湾岸ミッドナイト勉強会 Overnight Cruise湾岸ミッドナイト勉強会 Overnight Cruise
湾岸ミッドナイト勉強会 Overnight Cruise
 
エクストリームからはじめる四国観光案内
エクストリームからはじめる四国観光案内エクストリームからはじめる四国観光案内
エクストリームからはじめる四国観光案内
 
湾岸ミッドナイト勉強会 NordSchleife
湾岸ミッドナイト勉強会 NordSchleife湾岸ミッドナイト勉強会 NordSchleife
湾岸ミッドナイト勉強会 NordSchleife
 
OSC2021北海道企画!去年のプレゼン資料
OSC2021北海道企画!去年のプレゼン資料OSC2021北海道企画!去年のプレゼン資料
OSC2021北海道企画!去年のプレゼン資料
 
LibreOfficeで学ぶオープンソースと経済学
LibreOfficeで学ぶオープンソースと経済学LibreOfficeで学ぶオープンソースと経済学
LibreOfficeで学ぶオープンソースと経済学
 
Collabora Officeを使ってみよう
Collabora Officeを使ってみようCollabora Officeを使ってみよう
Collabora Officeを使ってみよう
 
"Cheap Mac" S'il-vouz plaît?
"Cheap Mac" S'il-vouz plaît?"Cheap Mac" S'il-vouz plaît?
"Cheap Mac" S'il-vouz plaît?
 
Linux desktop on_personalwork
Linux desktop on_personalworkLinux desktop on_personalwork
Linux desktop on_personalwork
 
LT : 25年越しの約束
LT : 25年越しの約束LT : 25年越しの約束
LT : 25年越しの約束
 
湾岸ミッドナイト勉強会 FLAT OUT
湾岸ミッドナイト勉強会 FLAT OUT湾岸ミッドナイト勉強会 FLAT OUT
湾岸ミッドナイト勉強会 FLAT OUT
 
Excelとの違いを意識することから始めるCalc入門
Excelとの違いを意識することから始めるCalc入門Excelとの違いを意識することから始めるCalc入門
Excelとの違いを意識することから始めるCalc入門
 
湾岸ミッドナイト勉強会 in 大阪
湾岸ミッドナイト勉強会 in 大阪湾岸ミッドナイト勉強会 in 大阪
湾岸ミッドナイト勉強会 in 大阪
 

芸人を 目指すわけでは ないけれど…(n575)

  • 1. 芸人を 目指すわけでは ないけれど… Tokaido LUG @ Nagoya Masataka Kondo (@Masa_B_Kondo ) September 17th, 2016
  • 3. Tokaido LUG at Nagoya September 17th , 2016 きっかけ : ● Macの近代化更新 – Mac mini(MC816J/A) – Macbook Air (MC969LL/A) ● どちらもSandy Bridge ● CPUの性能は問題ないんだがUSB2.0は限界 – 一足飛びに現行CPUは費用がかさむ – そうだMD101J/Aなら追い金なくても...?
  • 4. Tokaido LUG at Nagoya September 17th , 2016 余談ではありますが : ● Ivy BridgeでもDDR3-10600で動作するらしい – 実機を開封するとDDR3L-12800が鎮座 ● 同一モデルでも製造年によって違うらしい – 結局安全を見てDDR3L-12800を購入 ● SSD化は最初から念頭に入っていた – 予算の関係で512GBではなく480GB ● 光学ドライブは残す方針で – セカンダリをHDDにするのもよくありますが – あえて光学ドライブを持つメリットを享受
  • 6. Tokaido LUG at Nagoya September 17th , 2016 移行に伴う問題点 : ● 重くない? – 重いです。 ● JISキーボードだけど大丈夫? – 普段はクラムシェルで使うからまぁええかなと – 本当に嫌になったらトップケース交換もあり – 実は持ち出して使う際にちょっとイライラきてる ● ストレージ容量足りないんじゃない? – 写真は外付けHDDに逃がすことにしました – iTunesのライブラリが…
  • 7. Tokaido LUG at Nagoya September 17th , 2016 Appleよいらんことするなコラ ● 同期に失敗したファイルが勝手にdupされた – (トラック名) 1.mp3 とか
  • 8. Tokaido LUG at Nagoya September 17th , 2016 Appleよいらんことするなコラ ● ファイル名はID3タグがそのまま反映
  • 9. Tokaido LUG at Nagoya September 17th , 2016 Appleよいらんことするなコラ ● なわけで、日本語の曲名がついたのはほぼ壊滅
  • 10. Tokaido LUG at Nagoya September 17th , 2016 悪事はここには書ききれないほどあって ● Ver. Upに伴いライブラリが何度か剥奪される – おかしい? 俺別ディレクトリ指定してたんだが... – 一生懸命手動で移したのにまたかよ... ● ディレクトリを一時的に移動させた奴が認識されず – 実はまだ一部作業が残ってます ● こういうのが積み重なって、移行前のmp3容量 は300GB近くありました – 半分近くに減らせるという見込みはあった
  • 11. Tokaido LUG at Nagoya September 17th , 2016 現状のディスク構成 Transcend TS480G Optical Drive (DVD-multi)microSDXC 128GB via SD slot adaptor
  • 12. Tokaido LUG at Nagoya September 17th , 2016 iTunesのライブラリを「押し込む」 ● 先ほどのduplicateされた奴を全部削除 – これで半分、まだ努力が必要 ● 聴かないことが明らかな曲は削除 – J-POPなどはなくてもええね – 声優モノも相当絞り込み – シングルCDもなくてもええよな ● ベスト盤?そんなもん必要なの? – 他のCDでまかなえるQueenとか – 逆に増えてしまう危険性もある
  • 14. Tokaido LUG at Nagoya September 17th , 2016 サンプルは無難な奴
  • 15. Tokaido LUG at Nagoya September 17th , 2016 移動に伴う問題点 ● 自分がつけたいトラック名 01-Round Midnight.mp3 ● iTunesが勝手につけるトラック名 01 'Round Midnight 1.mp3 ● いずれにしろ移行元も移行先もファイル名に 空白を含む ● 空白があるとスクリプトに支障がある
  • 16. Tokaido LUG at Nagoya September 17th , 2016 そういや俺ちゃんと勉強したことないな... ● 簡単なShell Scriptなんてすぐ書けるよね ● 単純な処理しかやらせなかった ● 1990年代にUNIXを体験した人の問題点 – 通常ログインシェルはcsh – bshの機能では仕事ができない – bashはインストールされてても/etc/loginにない? ● ログインシェルをbashに移行...が遅れた – Linuxを使う場合でもtcshを選択 ● One Linerでスクリプトを書く習慣が不足
  • 18. Tokaido LUG at Nagoya September 17th , 2016 ハマった事例について ● 元ファイルはこんな感じ(重複分は消してます) $ ls -1 01 Off the Ground 1.mp3 02 Looking for Changes 1.mp3 03 Hope of Deliverance 1.mp3 04 Mistress and Maid 1.mp3 05 I Owe It All to You 1.mp3 06 Biker Like an Icon 1.mp3 07 Peace in the Neighbourfood 1.mp3 08 Golden Earth Girl 1.mp3 09 The Lovers that Never Were 1.mp3 10 Get Out of the Way 1.mp3 11 Winedark Open Sea 1.mp3 12 Cmon People 1.mp3
  • 19.
  • 20. Tokaido LUG at Nagoya September 17th , 2016 表示はうまくいくんだが... ● 「echo」を「mv」にしてもうまくいかない $ for i in * 1.mp3 ; do echo "${i/ 1.mp3/.mp3}" ; done 01 Off the Ground.mp3 02 Looking for Changes.mp3 03 Hope of Deliverance.mp3 04 Mistress and Maid.mp3 05 I Owe It All to You.mp3 06 Biker Like an Icon.mp3 (snip)….. $ for i in * 1.mp3 ; do mv -f $i `echo "${i/ 1.mp3/.mp3}"` ; done usage: mv [-f | -i | -n] [-v] source target mv [-f | -i | -n] [-v] source ... directory $
  • 21. Tokaido LUG at Nagoya September 17th , 2016 考えてみれば当たり前か ● mv $i... の時点でスペースが含まれるので 移行元ファイル自体が認識できない ● 変数$i自体にスペースが含まれなければよい ● さて、どうする... – ぐぐると、エキスパートの方が答を出していた http://nullpopopo.blogcube.info/2013/07/filename_replace.html
  • 22. Tokaido LUG at Nagoya September 17th , 2016 変数の設定に手心を加えるのがミソ ● forループで回す変数から空白を置き換え実施 $ for A in $(ls | grep " " | sed -e s/" "/_/g) ;    do mv "$(echo $A | sed -e s/_/" "/g)" $A ; done $ ls -1 01_Off_the_Ground_1.mp3 02_Looking_for_Changes_1.mp3 03_Hope_of_Deliverance_1.mp3 04_Mistress_and_Maid_1.mp3 05_I_Owe_It_All_to_You_1.mp3 06_Biker_Like_an_Icon_1.mp3 07_Peace_in_the_Neighbourfood_1.mp3 08_Golden_Earth_Girl_1.mp3 09_The_Lovers_that Never_Were_1.mp3 10_Get_Out_of_the_Way_1.mp3 11_Winedark_Open_Sea_1.mp3 12_Cmon_People_1.mp3
  • 23. Tokaido LUG at Nagoya September 17th , 2016 邪魔な空白がなければあとは楽 ● sedを駆使して直していきます $ for i in *_1.mp3 ; do mv $i "$(echo $i | sed -e s/_1.mp3/.mp3/)" ; done $ for i in *.mp3 ; do mv $i "$(echo $i | sed -e s/_/-/)" ; done $ for B in $(ls | grep _ ) ; do mv $B "$(echo $B | sed -e s/_/" "/g )" ; done $ ls -1 01-Off the Ground.mp3 02-Looking for Changes.mp3 03-Hope of Deliverance.mp3 04-Mistress and Maid.mp3 05-I Owe It All to You.mp3 06-Biker Like an Icon.mp3 (snip)….
  • 24. Tokaido LUG at Nagoya September 17th , 2016 シェルスクリプト化するにはどうする? ● ファイル名をいじるハナシなので厄介 ● 本来のファイル名を示したリストを使う ● 最初っからスペースを禁止したほうが楽? – それでは進歩もないよね...(ぉ ● シェルスクリプトの要素って – テキストファイルの中身をいじる – ファイル名などをいじる – バイナリファイルをいじる(外部フィルタなど) ● ま、とにかくちゃんと勉強したいな...と。
  • 25. Tokaido LUG at Nagoya September 17th , 2016 思い切って買ったんですがまだ読み切れず 入門UNIXシェルプログラミング ―シェルの基礎から学ぶUNIXの世界 Bruce Blinn 著 / 山下 哲典 訳 ISBN 978-4797321944
  • 26. Tokaido LUG at Nagoya September 17th , 2016 こっちはカルく読めるのでおすすめかな UNIXという考え方 Mike Gancarz 著 / 芳尾 桂 訳 ISBN 978-4274064067