
我有一個如下所示的文本文件:
707.421
KFDTL902
C
107.31 NL
Chn PCO
FMN
Chn Co
727.102
KFDTL901
C
107.32 NL
Chn PCO
FMN
Chn Co
它以這種模式重複。我正在嘗試匹配 707.xxx ([0-9]{3}.[0-9]{3}),並在匹配後獲取接下來的 7 行,並將它們作為 CSV 的行,其中第一行單元格是正規表示式匹配。所以輸出將是:
707.421,KFDTL902,C,107.31 NL,Chn PCO,FMN,Chn Co
707.421,KFDTL902,C,107.31 NL,Chn PCO,FMN,Chn Co
707.421,KFDTL902,C,107.31 NL,Chn PCO,FMN,Chn Co
是否可以使用 awk 或 sed 來完成此操作?如何使用這些工具在比賽後使用接下來的 7 行?
答案1
和sed
:
$ sed '/^[0-9]\{3\}\.[0-9]\{3\}$/{N;N;N;N;N;N;s/\n/,/g}' input.txt
707.421,KFDTL902,C,107.31 NL,Chn PCO,FMN ,Chn Co
727.102,KFDTL901,C,107.32 NL,Chn PCO,FMN ,Chn Co
對於與模式相符的每一行,讀取接下來的 6 行並將其附加到模式空間,然後用逗號取代所有換行符。