본문 바로가기

Computer Science/[19-상] Linux Bash Script14

[Linux_bash] regex: 날짜 형식 바꾸기 날짜를 표기하는 방법을 국가마다 다르다. 날짜 형식을 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은 세번째 그룹을 의미한다. \(..\) 왼쪽부터 첫번째,.. 2020. 2. 11.
[Linux_bash] regex,grep: 점(.)이 있는 문자열 찾기 정규표현식에서 점(.)은 임의의 문자를 의미한다. 따라서 grep "." filename egrep "." filename 명령어를 입력하면 파일에 있는 모든 character을 grep 한다. 하지만 . 그 자체를 찾아야할 경우에는 아래의 명령어처럼 입력하는 방법이 있다. grep "\." filename egrep "\." filename -> escape character인 \를 입력하면 . 의 특별한 의미 (임의의 문자)를 없애준다. grep "[.]" filename -> [] 는 괄호 안에 있는 문자랑 일치하는 것을 찾는다. 따라서 괄호 안의 점을 문자 그대로 찾는다. fgrep "." filename -> fgrep은 정규표현식을 지원하지 않고 문자 그대로 grep한다. 2020. 2. 11.
[Linux_bash] regex: 같은 숫자의 반복 찾기 정규표현식을 이용해서 같은 숫자가 여러개 반복되는 문자열을 찾을 수 있다. grep "\([0-9]\)\1" filename : 같은 숫자가 두번 반복 33 44 $ 설명 $ \(pattern\) -> 정규표현식으로 작성된 특정 패턴을 그룹으로 묶는다. \1 -> 패턴이 한번 더 존재한다. 응용하면, grep "\([0-9][0-9]\)\1" filename : 두자리 숫자이면서 같은 수가 두번 반복 1313 5656 grep "\([0-9]\)\2" filename : 같은 숫자가 세번 반복 777 888 2020. 2. 5.
[Linux_bash] nohup: 백그라운드 작업 nohup 명령어는 non-tty, 즉 터미널이 끊겨진 상태( log out, exit the shell ) 에서도 명령어를 실행하는 역할을 한다. 또한 stdout(표준출력)을 다른 파일(nohup.out 등)으로 돌린다. nohup은 명령어의 stdin은 리눅스에서 휴지통 역할을 하는 디렉터리 /dev/null 로 redirection하고, stdout은 nohup.out이라는 파일에 기록된다. stderr는 stdout으로 취급하여 처리한다. 예를들어, # mkdir 명령어로 direc1이라는 디렉토리를 생성하고 nohup 명령어와 함께 디렉터리를 지우는 경우 $ 설명 $ nohup rmdir direc1 & -> direc1을 rmdir 명령어로 지운다. nohup rmdir direc1 & ->.. 2020. 2. 2.
[Linux_bash] cut,sort: 필드(field)를 지정하는 옵션의 차이 엑셀 파일 (csv)을 리눅스로 불러오면 아래와 같이 쉼표로 구분된다. 쉼표로 구분된 각각의 열을 필드(field)라고 부른다. sort 와 cut 모두 필드를 정할 수 있는 옵션이 있다. 하지만 같은 의미인데 알파벳이 달라서 헷갈리는 경우가 많다. ----------------- Name,Country,Age James,United States,30 Aleta,Spain,15 Jisu,South Korea,23 wang,China,27 ---------------- 이런 텍스트 파일에서 첫번째 field는 Name, 두번째 field는 Country, 세번째 field는 Age이다. 필드 구분자는 쉼표 (,)이다. #cut 명령어로 특정 필드를 자르는 법 Country를 따로 잘라내고 싶으면 cut -.. 2020. 2. 2.
[Linux_bash] sort: 여러가지 방법으로 데이터를 정렬하기 sort 명령어를 이용하면 데이터를 알파벳 순서나 숫자 크기별로 정렬할 수 있다. # sort 명령어를 연습할 새로운 텍스트파일 생성 sort 명령어를 이용하기 위해 test_1.txt 라는 텍스트파일을 만들었다. cat > filename 을 이용하면 바로 내용을 입력할 수 있고, (redirection) Ctrl+c를 하면 내용 입력이 끝나고 저장된다. # sort 명령어 사용 # sort -r 역방향 정렬 -r 옵션을 사용하면 알파벳과 숫자 모두 역순으로 정렬한다. # field 정해서 정렬 -t "-": -를 구분자로 지정한다. -k 2: 구분자로 지정한 -를 기준으로 두번째 필드를 정렬한다. -r 옵션을 추가하면 두번째 필드를 역순으로 정렬한다. 이외에도, -u 옵션을 사용하면 중복되는 행을 지.. 2020. 2. 2.