SED에서 선행 0을 공백으로 바꾸는 방법은 무엇입니까?

SED에서 선행 0을 공백으로 바꾸는 방법은 무엇입니까?

SED에서 선행 0을 공백으로 바꾸는 방법을 찾으려고 합니다. 해당 월의 날짜를 얻고 일부 데이터를 필터링하기 위해 공백으로 바꾸려고 화면 긁는 중입니다.

내 코드는 다음과 같습니다.

DoM=$(date --date="-1 day" +"%d")
DoMSp=$(echo $DoM | sed "s/^0*/\ /g"); echo $DoMSp

하지만 문제는 "1"을 인쇄하는 대신 1-9의 하루가 있으면 표현식에 "\"를 아무리 많이 입력해도 "1"이 인쇄된다는 것입니다.

$ DoMSp=$(echo $DoM | sed "s/^0*/\ /g"); echo $DoMSp
1

$ DoMSp=$(echo $DoM | sed "s/^0*/\ \ \ \ \ \ /g"); echo $DoMSp
1

답변1

명령에서 공백을 이스케이프 할 필요는 없습니다 . 공백을 방지하려면 sed명령에 큰따옴표를 사용하기만 하면 됩니다.echo분사:

$ DoMSp=$(echo "$DoM" | sed "s/^0*/ /"); echo "$DoMSp"
 1

관련 정보