STUDY LOG/리눅스(Linux)
리눅스 명령어(CLI) 파일, 문자열 필터링 팁
YonKim
2024. 2. 14. 09:00
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