스크립트

포스트: 84
Tags

Posts

84 posts

[bash: wc] 파일 내용이 몇개의 행으로 이루어졌는지 확인하기

반달가면|2017년 8월 23일

예전부터 계속 활용해 오던 것인데, 생각난 김에 정리해 두기로. wc 명령으로 텍스트 파일이 총 몇줄인지(파일에 줄바꿈이 몇번 출현하는지) 확인해 볼 수 있다. -l 옵션을 사용하면 된다. 아래의 예시를 보자. # my_file.txt가 몇 줄인지 출력 wc -l my_file.txt 10 my_file.txt 만약 파일명을 출력하지 않고 싶다면 cat 명령과 조합하면 되겠다. # my_file.txt가 몇 줄인지 출력 cat my_file.txt | wc -l 10 개인적으로 가장 요긴하게 자주 쓰는 경우는 grep과 조합해서 특정 파일에서 특정 문자열을 포함한 행이 있는지 확인할 때다. # my_file.txt 내용중에 문자열 "abc"가 존재하는지 확인 grep

[bash: iconv] iconv를 이용한 텍스트 인코딩 확인

반달가면|2017년 8월 4일

인코딩이 불분명한 텍스트 파일이 있을 경우 iconv를 이용하는 간단한 셸 스크립트를 작성해서 인코딩을 확인해 볼 수 있다. 캐럭터 인코딩을 변환해주는 도구인 iconv에 대한 기본적인 내용은 이전 게시물을 참고하자. 여기로 방법은 단순하다. iconv에서 지원하는 인코딩 목록 전체를 가지고 현재 내 리눅스 시스템에서 사용중인 인코딩(통상 UTF-8)으로 한번씩 다 변환해 보는 것이다. 이걸 수작업으로 하기가 귀찮으므로 스크립트를 만들어서 하면 된다. 먼저, iconv에서 지원하는 인코딩 목록을 출력해 보자. # 지원하는 캐럭터 인코딩 목록 확인 iconv -l | more 437// 500// 500V1// ... iconv 버전에 따라 출력이 다를 수도 있겠는데, 어쨌든 데

[bash: if] if 조건문에서 띄어쓰기에 유의

반달가면|2017년 7월 25일

별 것 아닌 기본적인 내용이긴 한데, 스크립트를 만들다가 의외로 실수하는 경우가 종종 있어서 잊지 말자는 의미에서 적어 두기로. if 조건문에서 비교 조건을 지정하기 위해 대괄호([])를 사용하게 되는데, 대괄호와 비교조건 사이에는 반드시 공백이 있어야 한다. 아래의 예시를 보자. str="abc" # 오류 발생! (띄어쓰기 오류) if [[$str="abc"]] then echo "ABC" fi [[abc=abc]]: command not found 대괄호와 조건이 붙을 경우 bash에서 대괄호와 조건이 붙은 전체 문구를 하나의 명령어로 해석하여 처리하려 하므로 오류가 발생하게 된다. 띄어쓰기를 제대로 해 주면 정상 동작한다. # 정상 동작 if [[ $str="ab

[bash: xargs] 공백이 포함된 출력 결과를 다음 명령어의 인자로 사용

반달가면|2017년 7월 3일

간단한 내용이지만 간혹 잊어버리고 있다가 오류가 발생하는 상황이 있어서 여기에 정리해 두기로. 우선 xargs 명령에 대한 기본적인 내용은 이전 게시물을 참고하자. 여기로 예를 들어 앞 명령어의 출력이 파일명인데 이것을 xargs 명령을 통해서 인자(argument)로 넘기고자 하는 상황을 생각해 보자. 확장자가 txt인 파일만 grep으로 추려낸 후 cat으로 내용을 확인하는 경우다. 통상 아래와 같이 입력하면 될 것이다. # 현재 디렉토리에 있는 txt 파일의 내용 확인 ls | grep "\.txt" | xargs cat 만약 위와 같이 입력했는데 txt 파일 중에 파일명에 공백이 포함된 것이 있다면 해당 파일에 대해서는 cat 명령이 제대로 실행되지 않고 오류 메세지가 나올 것