저는 쉘 스크립팅을 처음 접했고 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