[问题] -请问这样的资料要如何用awk处理

楼主: xyzman (.........)   2018-05-31 12:04:03
我有格式如下的资料
Client dropped connection 52013
Compression error 2
Deactivating 1242
FTP error 0
FTPS not configured 174
Flow expired (sweeper) 2164495
我需要把资料重组成这样的格式
sometext,type=Client_dropped_connection value=52013
sometext,type=Compression_error value=2
...
...
...
由于前面文字的部份每列字段数非固定,透过awk拆解使用下列的语法
awk 'BEGIN{FS = "[ \t]+" ;ORS = "_"} {for(i=1;i<NF;i++) {print $i,"\n"}}'
原本预期能够将前面的文字重组成类似这样 -> Client_dropped_connection
结果输出结果却是像下面这样
Client
_dropped
_connection
_Compression
_error
_Deactivating
_FTP
_error
_FTPS
_not
_configured
_Flow
_expired
_(sweeper)
不加 "\n" {print $i,"\n"} 输出的结果却是所有的字都在同一行
试过几种方法都得不出我想要的结果
不知道是语法哪边出错?
作者: goldie (阿良)   2018-05-31 12:59:00
楼主: xyzman (.........)   2018-05-31 13:09:00
输出的结果是每一行都是sometext,type= value=不过又给我一个方向了,我再试试,谢谢!
作者: goldie (阿良)   2018-05-31 13:21:00
我用的是 gawk (GNU) 的版本
楼主: xyzman (.........)   2018-05-31 14:02:00
我在我的环境后来改成这样才正常显示https://pastebin.com/RCvhCNdn在我的环境中正规化比对有加$,会比对不到gsub在比对空格取代成底线的符号,用大大的语法match不到感谢goldie!!
作者: goldie (阿良)   2018-05-31 19:08:00
恭喜成功!题外话,PTT另有 RegExp 板

Links booklink

Contact Us: admin [ a t ] ucptt.com