이 스크립트에서 이 sed 명령은 어떤 역할을 합니까?

이 스크립트에서 이 sed 명령은 어떤 역할을 합니까?

저는 쉘 스크립팅을 처음 접했고 sed이 명령의 기능을 이해하지 못합니다. 설명을 도와주실 수 있나요?

cat $fRostroTmp | sed "s/ *|/;/g" >> $fRostroCsv
rm -f $fRostroTmp

답변1

sed귀하의 의견에서 표현 에 대해 구체적으로 질문하셨습니다 s/ *|/;/g.

이는 정규식과 일치하는 모든 항목을 단일 문자로 바꾸는 대체 명령( s) 입니다 .*|;

이 표현식은 *|0개 이상의 공백 뒤에 |문자 1개가 오는 것과 일치합니다. 따라서 입력에서 이것이 발생할 때마다 ;.

g표현식 끝에는 sed첫 번째 일치 항목뿐만 아니라 각 줄의 겹치지 않는 모든 일치 항목에 대체가 적용됩니다. 이는 다음과 같은 줄을 의미합니다.

1 2 3 | 3 4 5 | 5 6 6

또는

1 2 3| 3 4 5     | 5 6 6

로 변환됩니다

1 2 3; 3 4 5; 5 6 6

관련 정보