날짜를 표기하는 방법을 국가마다 다르다.
날짜 형식을 vi 편집기를 이용해서 바꾸는 방법을 알아보자.
# 국제 표준 형식인 YYYY-MM-DD 을
DD/MM/YYYY로 바꾸는 경우
vi filename
:%s/\(....\)-\(..\)-\(..\)/\3\/\2\/\1/g
아니면
:%s/\(\d\{4}\)-\(\d\{2}\)-\(\d\{2}\)/\3\/\2\/\1/g
:%s ->전체 행을 지칭
\(....\)-\(..\)-\(..\) -> regex를 이용한 패턴
.은 임의의 문자
\(\)를 이용해서 그룹 정하기.
\3\/\2\/\1 -> 바꿀 스트링
\1은 첫번째 그룹을 의미한다. \(....\)
\2는 두번째 그룹을 의미한다. \(..\)
\3은 세번째 그룹을 의미한다. \(..\)
왼쪽부터 첫번째, 두번째, 세번째이다.
/은 정규표현식 문자로 특수한 의미를 가지고 있기 때문에
이스케이프 문자 \를 앞에 써줘야한다.
따라서 \3/\2/\1 이렇게 쓰면 trailing character 오류가 난다.
g -> global 찾아진 패턴을 모두 치환
두번째 명령어도 같은 원리인데,
\d 는 digit의 약자로 숫자를 의미하고
중괄호로 묶인 숫자는 반복을 의미한다.
# DD/MM/YYYY를
핀란드식 DD.MM.YYYY로 바꾸는 경우
vi filename
:%s/\(..\)\/\(..\)\/\(....\)/\1\.\2\.\3/g
# DD.MM.YYYY를
스페인식 MM-DD-YY로 바꾸는 경우
vi filename
:%s/\(..\)\.\(..\)\...\(..\)/\2-\1-\3/g
'Computer Science > [19-상] Linux Bash Script' 카테고리의 다른 글
[Linux_bash] regex,sort: 엑셀 파일에서 column 별로 sort하기 (0) | 2020.02.20 |
---|---|
[Linux_bash] regex,grep: 엑셀 파일에서 두개의 단어로 된 셀 찾기 (0) | 2020.02.11 |
[Linux_bash] regex,grep: 점(.)이 있는 문자열 찾기 (0) | 2020.02.11 |
[Linux_bash] regex: 같은 숫자의 반복 찾기 (0) | 2020.02.05 |
[Linux_bash] nohup: 백그라운드 작업 (0) | 2020.02.02 |
댓글