【发布时间】:2018-03-07 15:37:00
【问题描述】:
嗨,awkers 我实现了将文本格式化为以下形式以便对其进行处理
HEADLINE01;INTRO;0X555
;A;0X22;;3;device:notebook;
;SPORT;round:;overcome
;FOO;set:;123456
;B;0X21;;3;device:charger;
;SPORT;round:;otherside
;FOO;set:;465465
INFO;INTRO;0X554
;O;0X23;;8;device:pc;
;SPORT;round:;overcome
;FOO;set:;123456
;N;0X24;;13;device:infra;
;SPORT;round:;otherside
;FOO;set:;465465
并且找不到实现这一目标的方法
HEADLINE01;INTRO;0X555;A;0X22;;3;device:notebook;;SPORT;round:;overcome;FOO;set:;123456
HEADLINE01;INTRO;0X555;B;0X21;;3;device:charger;;SPORT;round:;otherside;FOO;set:;465465
INFO;INTRO;0X554;O;0X23;;8;device:pc;;SPORT;round:;overcome;FOO;set:;123456
INFO;INTRO;0X554;N;0X24;;13;device:infra;;SPORT;round:;otherside;FOO;set:;465465
它有很多行,无法将其格式化为正确的方式
我也将其转换为一行,但基于模式“HEADLINE01”或“INFO”的拆分对我不起作用,因为它会随着正在进行的其他行而变化
任何我都会欣赏的技巧
//处理的原始格式是这个
------------------------------BOOKING LOG-----------------------------------
lorem ipsum lorem ipsumlorem ipsumlorem ipsumlorem ipsumlorem ipsumlorem ipsumlorem ipsum
-----------------------------------------------------------------
BOOKING:ENTRY:SYSTEM# SCAN
result:
No entry is found!
BOOKING:ENTRY::SYSTEM# SCAN
BOOKING:ENTRY::SYSTEM# SCAN
output:
system entry is:
date sytem log year
HEADLINE01 INTRO 0X555
log output list: 56456 lines
system device data transfer echoed NOK
A 0X22; 3;device:notebook
XX: BASE
SPORT round: overcome
FOO set: 465465
.... ....
谢谢你,继续前进
代码如下:
$ perl -ane 'print "$F[0] $F[1] $F[2]\n"' log | grep -E "^{1,5}HEADLINE01|A |SPORT|FOO" | sed -e 's/A /;A;/g; s/ /;/g; s/FOO/;FOO/g; s/SPORT/;SPORT/g;'
HEADLINE01;INTRO;0X555
;A;0X22;;3;device:notebook
;SPORT;round:;overcome
;FOO;set:;465465
【问题讨论】:
-
请添加执行您提到的转换的代码。您可能只需要进行一些格式更改即可获得所需的结果。
-
hi 代码如下,$ perl -ane 'print "$F[0] $F[1] $F[2]\n"' log | grep -E "^{1,5}HEADLINE01|A |SPORT|FOO" | sed -e 's/A /;A;/g; s//;/g; s/FOO/;FOO/g; s/运动/;运动/g;' HEADLINE01;INTRO;0X555 ;A;0X22;;3;device:notebook ;SPORT;round:;overcome ;FOO;set:;465465
-
cmets 中的代码不可读;如果您从
perl开始,为什么此时切换到awk? -
好吧,我试图通过并坚持这个:awk -F';' '{ for(i=1;i
标签: awk sed row multiple-columns