다음과 같은 텍스트 파일이 있습니다.
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줄을 읽고 패턴 공간에 추가한 다음 줄 바꿈을 쉼표로 바꿉니다.