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