![sed를 사용하여 mm/dd 날짜에서 처음으로 나타나는 0을 삭제하는 방법은 무엇입니까?](https://linux55.com/image/72678/sed%EB%A5%BC%20%EC%82%AC%EC%9A%A9%ED%95%98%EC%97%AC%20mm%2Fdd%20%EB%82%A0%EC%A7%9C%EC%97%90%EC%84%9C%20%EC%B2%98%EC%9D%8C%EC%9C%BC%EB%A1%9C%20%EB%82%98%ED%83%80%EB%82%98%EB%8A%94%200%EC%9D%84%20%EC%82%AD%EC%A0%9C%ED%95%98%EB%8A%94%20%EB%B0%A9%EB%B2%95%EC%9D%80%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F.png)
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을 모두 제거합니다.