키-값 형식 데이터에 사용자 정의 구분 기호 추가

키-값 형식 데이터에 사용자 정의 구분 기호 추가

901키가 , 902, 해당 값이 , , WAP` 903이고 공백을 구분 기호로 사용하는 "키:값" 형식의 데이터가 있습니다 .904SMF,

  • 입력 예
    901 S 902 M 903 F 904 WAP .....
    

형식 으로 변환하고 싶습니다 key:value,key:value.

  • 원하는 출력:
    901:S,902:M,903:F,904:WAP .....
    

사용해 보았지만 sed단일 구분 기호만 추가할 수 있습니다.

답변1

$ sed -E 's/\s*([0-9]+)\s+([A-Z]+)/\1:\2,/g;s/,$//' <<< '901 S 902 M 903 F 904 WAP'
-------8<------------------
901:S,902:M,903:F,904:WAP

답변2

모든 홀수 공백은 콜론으로, 모든 짝수 공백은 쉼표로 바꿀 수 있습니다.

sed -E 's/ ([^ ]) /:\1,/g; s/ /:/'

두 번째 대체는 마지막 남은 공간을 콜론으로 대체합니다. 함께 사용할 쉼표가 없기 때문에 첫 번째 대체로 대체되지 않습니다.

관련 정보