![키-값 형식 데이터에 사용자 정의 구분 기호 추가](https://linux55.com/image/215945/%ED%82%A4-%EA%B0%92%20%ED%98%95%EC%8B%9D%20%EB%8D%B0%EC%9D%B4%ED%84%B0%EC%97%90%20%EC%82%AC%EC%9A%A9%EC%9E%90%20%EC%A0%95%EC%9D%98%20%EA%B5%AC%EB%B6%84%20%EA%B8%B0%ED%98%B8%20%EC%B6%94%EA%B0%80.png)
901
키가 , 902
, 해당 값이 , , WAP` 903
이고 공백을 구분 기호로 사용하는 "키:값" 형식의 데이터가 있습니다 .904
S
M
F,
- 입력 예
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/ /:/'
두 번째 대체는 마지막 남은 공간을 콜론으로 대체합니다. 함께 사용할 쉼표가 없기 때문에 첫 번째 대체로 대체되지 않습니다.