awk 또는 sed를 사용하여 일치하는 7줄을 CSV 줄로 변환하세요.

awk 또는 sed를 사용하여 일치하는 7줄을 CSV 줄로 변환하세요.

다음과 같은 텍스트 파일이 있습니다.

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줄을 읽고 패턴 공간에 추가한 다음 줄 바꿈을 쉼표로 바꿉니다.

관련 정보