Mac
XML

Macでクリップボード内のXMLを整形してクリップボードに保存し直す

More than 1 year has passed since last update.

整形されてない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がクリップボードに保存される。

参考(というかググってたらほぼそのものにたどり着いた)

XMLを整形する - 文系プログラマによるTIPSブログ