そういう処理について見かけたので、念のため残しておく。 awkで行に含まれる数字のみを抜き出すには、区切り文字として数字以外を指定して、各列を取得してやることで実現できる。
例えば、ファイルの各行に含まれている数字を1行づつ抽出する場合、以下のようにコマンドを実行する。
awk -F '[^0-9]+' '{for(i=1;i<=NF;i++){if($i!="")print $i}}' test1.txt
[root@BS-PUB-CENT7-01 ~]# cat test1.txt
111AAA222BBB333
CCC444DDD555EEE
666FFF777GGG888
[root@BS-PUB-CENT7-01 ~]# awk -F '[^0-9]+' '{for(i=1;i<=NF;i++){if($i!="")print $i}}' test1.txt
111
222
333
444
555
666
777
888
基本はこちらで良いと思うが、もし同じ行で数字だけを抽出するような処理をする場合、以下のように記述することもできる。
awk -F '[^0-9]+' 'BEGIN{OFS=""}{$1=$1;print $0}' test1.txt
[root@BS-PUB-CENT7-01 ~]# cat test1.txt
111AAA222BBB333
CCC444DDD555EEE
666FFF777GGG888
[root@BS-PUB-CENT7-01 ~]# awk -F '[^0-9]+' 'BEGIN{OFS=""}{$1=$1;print $0}' test1.txt
111222333
444555
666777888
[root@BS-PUB-CENT7-01 ~]# awk -F '[^0-9]+' 'BEGIN{OFS=","}{$1=$1;print $0}' test1.txt
111,222,333
,444,555,
666,777,888