BASH

포스트: 81
Tags

Posts

81 posts

[bash: find, xargs, for] find 명령으로 추려낸 여러 파일에 대해 같은 작업을 하기 위한 스크립트

반달가면|2018년 8월 13일

find 명령으로 추려낸 파일들을 xargs 명령으로 넘겨서 해당 파일들에 대해 뭔가 작업을 하기 위한 스크립트를 만들 수 있다. 우선 find에 대한 기본적인 내용은 여기로, xargs에 대한 기본적인 내용은 여기로. 작업용 스크립트의 이름을 proc.sh라고 하자. 명령어 실행은 아래와 같은 형태가 될 것이다. # my_file.txt 파일에 대한 작업 bash proc.sh my_file.txt # find 명령으로 추려낸 여러 파일에 대한 작업 find ./ -type f | xargs proc.sh # find와 grep 명령으로 .txt 파일만 추려낸 후 작업 find ./ -type f | grep "\.txt" | xargs proc.sh find 명령으로 몇개

[bash: grep] 파일에 저장된 여러개의 검색어를 포함 또는 제외한 내용 출력하기

반달가면|2018년 8월 7일

몇개의 문자열에 대한 검색은 기본적인 grep 명령으로 그 자리에서 작업을 해도 큰 문제가 없을 것이다.(grep을 이용한 다중 문자열 검색은 이전 게시물을 참고하자. 여기로) # my_data.txt에서 문자열 abc 또는 123이 포함된 행 출력 cat my_data.txt | grep "abc\|123" 그러나, 꽤 많은 검색어가 있고 이 검색어들을 제외한 나머지 내용을 찾고자 할 때는 문제가 좀 복잡해 진다. 예를 들어 keyword.txt 파일에 10개 이상의 검색어가 저장되어 있고, my_data.txt 파일에서 이 검색어를 포함 또는 제외한 내용을 출력해야 하는 경우다. 일일이 수작업으로 확인하기 검색해야할 문자열이 너무 많다. 이럴 경우엔 배열(array)을 이용해서 검색어를

[bash: stat] 현재 파일이 전송되고 있는 중인지 판단하기 - 2

반달가면|2018년 7월 16일

예전에 파일이 마지막으로 수정된 시간이 언제인지를 확인해서 파일이 현재 전송중인지 판단하는 방법을 정리해 두었는데, 한가지 방법을 더 정리해 두기로. 두번째 방법은 일정 시간 동안 파일 크기가 변했는지 그대로인지를 보고 판단하는 것이다. 현재 파일 크기가 얼마인지 확인하고 이후 일정 시간, 예를 들어 10초 후에 파일 크기를 다시 확인해서 크기가 같은지를 비교한다. 만약 파일이 전송중이라면 10초후의 파일 크기는 좀 더 늘어나 있을 것이다. 파일 크기만 출력하려면 stat 명령에서 아래와 같이 하면 되겠다. -c 옵션으로 출력 형식을 지정해 주는데, 파일 크기는 %s이다. # my_file.txt 파일의 크기 확인 stat -c %s my_file.txt 시간차 기준을 10초로 하여

리눅스 민트에서 시스템 전체에 적용되는 bash 설정(bashrc) 수정

반달가면|2018년 7월 4일

각 계정에 따른 bash shell 설정은 ~/.bashrc에 추가해 주면 되겠지만, 시스템 전체에 적용하고 싶은 설정이 있을 경우가 있다. 이 경우, 리눅스 민트(Linux Mint)에서는 /etc/bash.bashrc 파일을 편집해 주면 된다. 리눅스 민트가 우분투 계열이므로 데비안/우분투 또는 다른 데비안/우분투 계열 배포판도 아마 같을 것이라 생각된다. 레드햇 등 다른 배포판은 다를 수도 있겠다. # /etc/bash.bashrc 파일 편집 sudo vi /etc/bash.bashrc 시스템 전체에서 공통적으로 export해서 사용하고 싶은 변수가 있다거나, 명령어를 alias로 지정하고 싶을 때 이 파일을 편집하면 된다.