보안 기호를 수평으로 배열

보안 기호를 수평으로 배열

다음과 같은 보안 식별자 ID(SID)가 있습니다.

SID_1
S-1-2-12-347289564783285475
SID_2
S-1-2-12-312478290434839212
S-1-2-12-312748912347723432
S-1-2-12-123475184123489632
SID_3
SID_4
S-1-2-12-384721849326143123
S-1-2-12-324624783246712332
SID_5
SID_6

다음 형식의 ID만 허용하는 알고리즘에 공급할 수 있도록 수평으로 정렬해야 합니다.

SID_1:S-1-2-12-347289564783285475
SID_2:S-1-2-12-312478290434839212:S-1-2-12-312748912347723432:S-1-2-12-123475184123489632
SID_3
SID_4:S-1-2-12-384721849326143123:S-1-2-12-324624783246712332
SID_5
SID_6

이것이 어떻게 달성될 수 있습니까?

답변1

그리고 awk:

awk '/^S-/{s=s":"$1;next}s{print s}{s=$0}END{print s}' file

SID_1:S-1-2-12-347289564783285475
SID_2:S-1-2-12-312478290434839212:S-1-2-12-312748912347723432:S-1-2-12-123475184123489632
SID_3
SID_4:S-1-2-12-384721849326143123:S-1-2-12-324624783246712332
SID_5
SID_6

답변2

사용sed

sed -i ':a;N;$!ba;s/\nS-/:S-/g' file
SID_1:S-1-2-12-347289564783285475
SID_2:S-1-2-12-312478290434839212:S-1-2-12-312748912347723432:S-1-2-12-123475184123489632
SID_3
SID_4:S-1-2-12-384721849326143123:S-1-2-12-324624783246712332
SID_5
SID_6

관련 정보