Sed: ISO 날짜 2016-12-30T09:42:14에서 T를 교체합니다.

Sed: ISO 날짜 2016-12-30T09:42:14에서 T를 교체합니다.

2016-12-30T09:42:14T를 날짜 형식으로 바꾸는 방법은 무엇입니까 ?

예상 형식:2016-12-30 09:42:14

답변1

echo 2016-12-30T09:42:14 \
| sed 's/\([0-9]\{4\}-[0-9][0-9]-[0-9][0-9]\)T\([0-9][0-9]:[0-9][0-9]:[0-9][0-9]\)/\1 \2/'
  • [0-9]임의의 숫자와 일치
  • \{4\}이전 콘텐츠가 정확히 4번(보다 짧음 [0-9][0-9][0-9][0-9]) 나타나야 함을 나타냅니다.
  • \(...\)\1번호( \2등) 로 참조할 수 있는 캡처 그룹을 만듭니다.

답변2

echo 2016-12-30T09:42:14 | sed -re 's/(-[0-9]{2})T([0-9]{2}:)/\1 \2/g'

-r\-> 읽기 쉬움이 필요하지 않음을 의미하며
-<two digits>T<two digits>:잘못된 일치 항목을 제공할 가능성이 적습니다.

결과: 더 짧고 유지 관리가 더 쉽습니다.

답변3

입력 텍스트가 무엇인지 잘 모르겠지만 형식이 표시된 것과 같다고 확신한다면 가장 간단한 코드는 다음과 같습니다.

echo "2016-12-30T09:42:14" | sed -e 's/T/ /g'

관련 정보