매니페스트 bash 스크립트의 일부로 SFP 모듈을 확인하고 이를 .csv 파일에 추가합니다. 현재 형식은 다양한 길이로 다음과 같습니다.
RO01;1000BaseSX SFP;1000BaseSX SFP
RO02;1000BaseSX SFP;1000BaseSX SFP;1000BaseLX SFP
내 목표는 첫 번째 행뿐만 아니라 첫 번째 행 이후의 각 행에도 자체 행을 제공하는 것입니다. 따라서 위의 줄은 다음과 같아야 합니다.
RO01;1000BaseSX SFP
RO01;1000BaseSX SFP
RO02;1000BaseSX SFP
RO02;1000BaseSX SFP
RO02;1000BaseLX SFP
텍스트 처리를 사용하여 이를 어떻게 달성할 수 있습니까?
답변1
가능한 해결책은 다음을 사용하는 것입니다 awk
.
awk -F";" '{ for (i = 2; i <= NF; i++) { printf("%s;%s\n", $1, $i); } }' file
(필드 구분 기호)를 로 설정했습니다 awk -F";"
. 그런 다음 각 행(레코드)에 대해 필드 2부터 마지막 필드( )까지 시작하고 필드 1과 현재 필드( )를 인쇄합니다.FS
;
NF
for (i = 2; i <= NF; i++)
$i