整形されてないXMLをフォーマットするとき、エディタのフォーマット機能使ってたけど、ちょっと見るだけなのに「ファイルを保存しないとフォーマットできない」とか「拡張子が違うからってフォーマットできない」とか怒られるのがめんどくさいのでクリップボードからクリップボードに移動させる方法を探してた。
クリップボードをやり取りするコマンド(pbcopy,pbpaste)はもともと知ってたんだけど、xmllintという神コマンドも知ってしまった。
準備
パスが通っている適当なところにxmlformat.sh
を配置する。私は~/bin/
に配置した。
~/bin/xmlformat.sh
# !/bin/sh
pbpaste | xmllint --format - | pbcopy
コマンドの内容はこんな感じ
- #!/bin/sh - このファイルはシェルスクリプトだよって教える
- pbpaste - クリップボードから内容をペーストする
- |(パイプ) - 別のプログラムに入力に引き渡す
- xmllint - xmlのフォーマットに使用する
- --format - xmllintのオプション
- pbcopy - クリップボードにコピーする
sh
コマンドを使わなくてもいいように実行権限を付与する
chmod +x ~/bin/xmlformat.sh
実行
整形されてないXMLをクリップボードにコピーしてから次のコマンドを実行する。
xmlformat.sh
これで、めでたく整形されたXMLがクリップボードに保存される。