sed를 사용하여 mm/dd 날짜에서 처음으로 나타나는 0을 삭제하는 방법은 무엇입니까?

sed를 사용하여 mm/dd 날짜에서 처음으로 나타나는 0을 삭제하는 방법은 무엇입니까?

mm/dd에서 처음 나타나는 0을 제거하고 싶습니다. 예를 09/09/15들어 9/9/15.

사용해 보았 echo 09/10/15 | sed 's/^.//'으나 와 유사한 결과가 나타납니다 9/09/15. 어떻게 해야 합니까?

답변1

echo 01/01/2005 | sed 's=\(^\|/\)0=\1=g'

0 앞에 줄의 시작 부분이나 /가 오면 줄의 시작 부분으로 대체됩니다(예: 없음 또는 /).

답변2

0내가 올바르게 이해했다면 날짜 문자열에서 모든 선행 s를 제거 하고 싶습니다 . 그렇다면 다음을 시도해 보십시오.

sed 's/0\([1-9]\)/\1/g'

이는 a 0다음에 1에서 9 사이의 숫자가 오고, 괄호는 숫자를 나타냅니다. 그런 다음 전체 패턴을 일치하는 >0 숫자( \1)로 바꿉니다.

답변3

sed 's/^/ /;s/\([^0-9.]\)0*\([1-9]\)/\1\2/g;s/.//' <infile >outfile

...한 줄에 0이 아닌 숫자가 하나 이상 포함된 모든 숫자 문자 그룹에서 선행 0을 모두 제거합니다.

관련 정보