sed를 사용하여 텍스트 형식을 어떻게 변경할 수 있습니까?

sed를 사용하여 텍스트 형식을 어떻게 변경할 수 있습니까?
cat > inputfile

X1 a1,b1,c1,d1.................. dn
X2 a2,b2,c2,d2.................. and so on upto n
................................................
................................................
Xn an,bn,cn,dn....................and so on upto n

출력 형식:

X1 a1 +
   b1 +
   c1 +
   .
   .
   .
   .

X2 a2 +
   b2 +
   c2 +
   .
   .
   .


and so on

나는 다음과 같은 것을 시도하고 있습니다

 sed ':b;s/,/\
/;tb;s/\
/ +/g'

참고: 앞에 탭을 추가해야 합니다 b1 +,c1 +.....b2 +,c2 +,...

답변1

이 입력 파일이 주어지면:

X1 a1,b1,c1,d1
X2 a2,b2,c2,d2
X3 a3,b3,c3,d3
X4 a4,b4,c4,d4

sed 사용(bash 사용ANSI-C 인용명확성을 위해):

sed $'s/,/ +\\\n\t/g' inputfile
X1 a1 +
    b1 +
    c1 +
    d1
X2 a2 +
    b2 +
    c2 +
    d2
X3 a3 +
    b3 +
    c3 +
    d3
X4 a4 +
    b4 +
    c4 +
    d4

sed는 개행 앞에 백슬래시를 보아야 합니다. 그렇지 않으면 "종료되지 않은 s 명령" 오류가 발생합니다.

관련 정보