たとえば、sedを使用して1:52を01:52に変更するには?

たとえば、sedを使用して1:52を01:52に変更するには?

入力する:

a|2013.06.13. 13:22|xx
b|2013.06.13. 1:52 |xx
c|2013.06.13. 2:26 |xx

出力:

a|2013.06.13. 13:22|xx
b|2013.06.13. 01:52 |xx
c|2013.06.13. 02:26 |xx

この場合、1:52を01:52にする方法は?

アップデート:ありがとう!これらはうまく機能しますが、分と「|」間のスペースをどのように削除できますか? 0を加えるとどうなりますか?

$ sed -e 's/ \([0-9]:\)/ 0\1/' b.txt 
a|2013.06.13. 13:22|xx
b|2013.06.13. 01:52 |xx
c|2013.06.13. 02:26 |xx
$ perl -wpe 's/(\d+):/sprintf( "%02d:",$1)/e' b.txt 
a|2013.06.13. 13:22|xx
b|2013.06.13. 01:52 |xx
c|2013.06.13. 02:26 |xx
$ 

うわ.. :)

ベストアンサー1

sed -e 's/ \([0-9]:\)/ 0\1/'

スペースとコロンの間に 1 桁の数字が表示される場合は、ゼロが追加されます。分後にスペースを削除するには

sed -e 's/ \([0-9]:[0-9][0-9]\) / 0\1/'

おすすめ記事