41703
10002
30003
40002
40000
20203
20203
30100
50000
50000
50000
50000
70700
70600
このファイルがあります。出力が欲しいです。
4.17.3
1.0.2
3.0.3
4.0.2
4.0.0
2.2.3
2.2.3
3.1.0
5.0.0
5.0.0
5.0.0
5.0.0
7.7.0
7.6.0
私はSolarisマシンを作業しています。
ベストアンサー1
Awk
解決策:
awk '{ printf "%d.%d.%d\n", substr($1,1,1), substr($1,2,3)/10, substr($1,5) }' file
substr(string, start [, length ])
- 文字記号で始まり、length
1文字の長さの部分文字列を返します。string
start
出力:
4.17.3
1.0.2
3.0.3
4.0.2
4.0.0
2.2.3
2.2.3
3.1.0
5.0.0
5.0.0
5.0.0
5.0.0
7.7.0
7.6.0
GNUがサポートされている場合、awk
より短い方法は次のとおりです。
awk -v FS="" '{ print $1, ($2$3$4)/10, $5 }' OFS='.' file
FS=""
- 値が空の文字列(""
)の場合、レコード内の各文字は別々のフィールドになります。