sed 패턴 일치 날짜

sed 패턴 일치 날짜

sed를 사용하여 패턴 일치를 사용하는 방법을 이해하는 데 어려움을 겪고 있습니다.

dd.mm.yyyy큰 파일 내에서 다음 날짜 형식을 에서 로 바꾸고 싶으 dd/mm/yyyy므로 기본적으로 점을 슬래시로 바꿉니다. 파일에는 명시된 형식의 날짜가 여러 번 포함되어 있지만 문장 끝 등의 마침표를 변경해서는 안 됩니다.

sed 's/\./\//g' <file_name> 

작업을 수행하지만 (.)마다 변경되므로 패턴 일치를 수행하는 방법이 필요합니다.

어떤 도움이라도 주시면 감사하겠습니다.

감사해요

답변1

이 작업을 수행합니다.

sed 's/\([0-9][0-9]\)\.\([0-9][0-9]\)\.\([0-9]\{4\}\)/\1\/\2\/\3/g' file

설명:

s/                  # substitute
  \([0-9][0-9]\)    # group 1, 2 digits
  \.                # a dot
  \([0-9][0-9]\)    # group 2, 2 digits
  \.                # a dot
  \([0-9]\{4\}\)    # group 3, 4 digits
/
  \1                # content of group 1
  \/                # a slash
  \2                # content of group 2
  \/                # a slash
  \3                # content of group 3
/g                  # global flag

관련 정보