職場などでMacとWindowsのファイルパスを相互変換したい機会って多いですよね?
自分の職場(部署)ではほとんどがWindowsユーザなので、slackなどでファイルパスをやり取りする際、ほぼ100%パスを変換する必要がでてくる
例)同じファイルが
Winだと
\\Nas\aaa\bbb\ccc.xlsx
Macだと
smb://Nas/aaa/bbb/ccc.xlsx
PathCon※というwebサービスで解決できるがもっと簡単にしたい
※2018/1/29追記 PathConはサービス終了したようです
- Macへ移行直後からPahtConというwebサービスを使って解決していた
- 素晴らしいサービスで基本的にこれを利用すれば問題ない
- ただし、個人的に以下のような課題を感じていた
- いちいちwebサイトを開いてパスを変換するのが手間(web読み込みにも時間かかる)
- セキュリティも心配
Automatorを活用して解決する方法
- ググるとAutomator+シェルスクリプト+ファイルパスを読み込むスクリプトにて実現する方法が最適解ぽい
- 以下と似たような例はたくさんでてきた
Automatorを利用せずシェルスクリプトのみで実現する方法
今回色々調べてやってみたのがこちら
なんとなくAutomatorを使うのが余計面倒に感じる方むけ
[手順]
1.MacとWindowsのファイルパスを相互変換するスクリプトを用意
macからwinへ
#!/bin/bash
# クリップボードに格納されたパスをmacからwinへ置換して再びクリップボードへ格納するスクリプト
pbpaste | sed -E 's/smb:\/\//\\\\/' | sed -E 's/\//\\/g' | tr -d '\n' | pbcopy
winからmacへ
#!/bin/bash
# クリップボードに格納されたパスをwinからmacへ置換して再びクリップボードへ格納するスクリプト
pbpaste | sed -E 's/\\+/smb:\/\//' | sed -E 's/\\/\//g' | tr -d '\n' | pbcopy
2.用意したスクリプトをFinderなど、コンソール以外からも実行できるようにする
[.sh]を[.command]という拡張子に変更し、実行権限をつけることで実現できる
3.作成したバッチをspotlight検索などで瞬時に実行できるようにして利用
自分の環境ではデスクトップにシンボリックリンクを貼り、spotlight検索で表示されるようにする必要があった
感想ひとこと
- そもそもsedやtrや正規表現での置換とか実はちゃんとやったことなかったので勉強になった
- 覚えたてのpbcopy/pbpasteもやはり便利 →Macのターミナルとクリップボード間でコピー&ペースト
- [.command]で実行すると毎回コンソールが立ち上がって邪魔とか、spotlightで検索ってどうなの?とか課題は山ほどあるが、いくらでも工夫の余地がありそうなのと、PathCon使うよりはスピーディーになったので、ひとまず満足してます
- 個人的にはクリップボード履歴アプリに、スクリプトでテキスト整形できる機能が
ついていれば一番いいのだけど、なかなかこれ、というアプリが見つからない
参考
【神ツール】会社Macユーザー必見!MacとWindowsのファイルパスを相互変換できるウェブサービス「PathCon」
MacのAutomatorを使ってWindowsのファイルパスを変換しつつFinderで開く方法
Macのターミナルとクリップボード間でコピー&ペースト
hydroculのメモ > コマンドの使い方(Linux) > sed コマンド
hydroculのメモ > コマンドの使い方(Linux) > tr コマンド
正規表現によるマッチング
Macでバッチ(command)ファイルを作る方法
Macでファイル名検索する方法のまとめ