본문 바로가기

STUDY LOG/리눅스(Linux)

리눅스 명령어(CLI) 파일, 문자열 필터링 팁

728x90
반응형

리눅스 명령어(CLI) 파일, 문자열 필터링 팁

자주 필요한데 자주 까먹는 필터링 커맨드를 내가 보려고 블로그에 박제합니다.

특정 조건을 가진 파일만 따로 추출하여 옮기기 (one liner)

extract files with permission

예: 유저에게 실행 권한이 있는 파일만 따로 추출하여  /opt/executable 디렉토리로 복제

$ find /파일경로 -type f -perm -u=x -exec cp "{}" /대상경로 \;

 

extract files with size

예: 1M 이상 사이즈의 파일만 따로 추출하여 옮기기

$ find /파일경로 -type -f -size +1M -exec mv "{}" /대상경로 \;

 


특정 문자열을 가진 파일만 따로 추출하기(간단한 버전: grep)

$ grep -rl "찾으려는 문자열" <경로>

 

파일 내 특정 문자열을 교체하기(간단한 버전:Search and replace)

특정 configuration 파일의 활성화 옵션 enabled를 disabled로 모두 교체할 때 등 사용 가능
$ sed -i s/대상문자열/교체문자열/g <파일명>

 

파일 내 특정 조건에 맞는 문자열 찾기(간단한 버전: grep)

abcde 문자열 또는 xyzabc 문자열과 같이 특정 단어로 시작되거나 끝나는 문자열을 찾을
# 'abc'로 시작하는 문자열
$ grep "^abc" <파일명>
# 'abc'로 끝나는 문자열
$ grep "abc$" <파일명>

 


두 파일의 문자열 차이 / 두 디렉토리의 컨텐츠 차이 추출(간단한 버전: comm, diff)

두 파일 간 문자열 차이 (A파일에는 있지만 B파일에는 없는 문자열)
$ comm -23 <(sort A.txt) <(sort B.txt)

 

단순 비교 후 리디렉션(diff.txt로)
$ diff 파일1.txt 파일2.txt > diff.txt

 

두 디렉토리 간 컨텐츠 차이  (A디렉토리에만 있는 파일 목록 출력)
$ diff -rq A B | grep "Only in A:" | sed 's/Only in A: //'



 

728x90