본문 바로가기

Computer Science74

[Python] 딕셔너리 키와 값을 서로 바꾸기 >>> new_dict = {} >>> for keys, values in content.items(): new_dict[values] = keys 2020. 2. 26.
[Linux_bash] redirection 이해하기 redirection은 stdin(표준입력) , stdout(표준출력) , stderr (표준에러) 등을 파일로 저장할 때 사용된다. 특히 출력 redirection에 대해서 알아보자면, >: 새로운 파일을 생성할 때 사용한다. 예를들어, 새로운 텍스트 파일을 만들 때 cat 명령어와 함께 사용한다. cat > text.txt >>: 파일에 내용을 추가할 때 사용한다. 내용을 덧붙이고 싶을 때 >를 쓰면 치환된다. redirection을 이용해서 오류메세지를 저장한 파일을 만들 수 있다. # 오류메세지 redirection 하는 법 command line 2> filename command line에서 난 오류 (2)를 filename이라는 파일에 저장한다. # 오류메세지가 나타나지 않게 하는 법 리눅스.. 2020. 2. 20.
[Linux_bash] regex,sort: 엑셀 파일에서 column 별로 sort하기 엑셀 파일을 행 별로 정렬하는 방법을 알아보자. 1. field를 정해서 sort 명령어를 쓰는 법 sort - t "," -k 5 filename -t: 구분자를 지정하는 옵션 ",": ,(쉼표)를 구분자로 지정 -> 엑셀 파일을 리눅스에서 불러오면 행이 쉼표로 나누어져 있다. -k: 필드를 지정하는 옵션 위의 명령어에서는 5번째 필드를 선택했다. 2. vi 에서 field를 정하고 sort 명령어를 쓰는 법 (복잡) vi filename :sort \([^,]*,\)\{4} vi 에서 sort 명령어를 사용하면 정규표현식으로 패턴을 지정하고 그 패턴에 해당하는 것을 정렬할 수 있다. [^,]: ,가 있지 않음 [] 안의 맨 앞에 ^를 써주면 포함되지 않음을 의미 *, 0개 이상의 문자와 쉼표 \([^.. 2020. 2. 20.
[Linux_bash] regex,grep: 엑셀 파일에서 두개의 단어로 된 셀 찾기 엑셀로 작성된 파일 (.csv)를 리눅스에서 열면 콤마 (,)로 데이터가 연결되어 있다. 이 때 단어가 두개 = 띄어쓰기가 한번 되어있는 행을 찾는 명령어는 아래와 같다. grep ",[a-zA-Z]* [a-zA-Z]*," filename [a-zA-Z]: 대소문자 구별 없이 알파벳 중 하나 *: 앞의 문자가 한번 또는 여러번 반복 grep ",[a-zA-Z].* [a-zA-Z].*," filename -> . 이 임의의 문자를 뜻해서 ,나 띄어쓰기도 포함하기 때문에 이렇게 적으면 콤마 사이에 띄어쓰기 한번을 의미하지 않는다. 2020. 2. 11.
[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.