我需要使用awk分割一长串未分隔的数字。我该如何拆分:
91.5799.3677.48107.5981.26
使用awk生成:
91.57
99.36
77.48
107.59
81.26
答案 0 :(得分:5)
使用egrep
:
s='91.5799.3677.48107.5981.26'
egrep -o '[^.]*.[0-9]{2}' <<< "$s"
91.57
99.36
77.48
107.59
81.26
答案 1 :(得分:1)
如果GNU grep不可用且Perl可以接受:
perl -pe's|\...(?!\Z)|$&\n|g' infile
GNU awk:
awk 'NF&&$0=$0RT' RS='\\...' infile
答案 2 :(得分:1)
根据要求,这是awk
..
awk 'NR==1 {s=$1} NR>1 {e=substr($1,1,2);print s "." e;s=substr($1,3)}' RS="." <<< "91.5799.3677.48107.5981.26"
91.57
99.36
77.48
107.59
81.26
另一个版本
awk '{for (i=1;i<=NF;i++) {if ($i==".") f=i;printf "%s"(f&&i==f+2?RS:""),$i}}' FS=""
91.57
99.36
77.48
107.59
81.26