Lab1という入力ファイルの場合:
034023 052030
034023 022130
044023 012030
034223 022030
034123 152030
024023 152030
AWKコマンド
awk 'gsub(/[0-9][0-9]/,"&:",$1) gsub(/[0-9][0-9]/,"&:",$2)' Lab1
結果:
03:40:23: 05:20:30:
03:40:23: 02:21:30:
04:40:23: 01:20:30:
03:42:23: 02:20:30:
03:41:23: 15:20:30:
02:40:23: 15:20:30:
末尾のコロンを防ぐ方法は?
希望する結果
03:40:23 05:20:30
03:40:23 02:21:30
答え1
awk '
{
for(i=1;i<=NF;i++){
sub(/[0-9]{4}$/,":&",$i)
sub(/:[0-9]{2}/,"&:",$i)
}
}
1
' <<<\
'034023 052030
034023 022130
044023 012030
034223 022030
034123 152030
024023 152030'
生産する:
03:40:23 05:20:30
03:40:23 02:21:30
04:40:23 01:20:30
03:42:23 02:20:30
03:41:23 15:20:30
02:40:23 15:20:30
1は他のスクリプト用です
。
#!/usr/bin/awk -f
gsub(/[0-9]{4}\>/,":&") &&
gsub(/:[0-9][0-9]/,"&:")
2.
#!/usr/bin/awk -f
gsub(/[0-9]{2}\B/,"&:")
三。
#!/usr/bin/awk -f
BEGIN{
FS=OFS=""
}
/[0-9]{6} [0-9]{6}/{
$3=":"$3
$4=$4":"
$11=":"$11
$12=$12":"
print
}
4.
#!/usr/bin/awk -f
/[0-9]{6} [0-9]{6}/{
printf("%02d:%d:%s:%d:%d\n",
substr($0,0,2),
substr($0,3,2),
substr($0,5,6),
substr($0,11,2),
substr($0,13,2))
}
答え2
これまで私が持っている最良の方法ですが、これが唯一の方法ではありません。
[root@virt03 test]# awk 'gsub(/[0-9][0-9]/,":&",$1) gsub(/[0-9][0-9]/,":&",$2)' lab1 | sed 's/://1' | sed 's/://3'
03:40:23 05:20:30
03:40:23 02:21:30
04:40:23 01:20:30
03:42:23 02:20:30
03:41:23 15:20:30
02:40:23 15:20:30
[root@virt03 test]# cat lab1
034023 052030
034023 022130
044023 012030
034223 022030
034123 152030
024023 152030
[root@virt03 test]#