분류 전체보기75 [Linux_bash] pr,sed,grep: 문서 양식화하고 여백 지우기 pr 명령어는 프린트를 할 때 보기 좋게 문서 파일을 양식화하고 standard output으로 내보낸다. syntax: pr [option] [filename] 파일의 행 디폴트 값은 66줄로, 텍스트 파일이 66줄보다 짧다면 나머지는 여백으로 처리된다. # 텍스트 파일에서 여백(빈 줄) 지우기 sed -r '/^\s*$/d' sed '/^$/d' grep -v '^$' 간단한 방법으로 이렇게 세가지를 주로 사용한다. ^ : 문장의 시작을 의미한다. $ : 문장의 끝을 의미한다. 따라서, ^$ : 문장에 아무 문자도 없음을 의미한다. 명령어를 종합해서 써보면, pr filename | sed '/^$/d' 2020. 2. 29. [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. 이전 1 ··· 6 7 8 9 10 다음