일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
Tags
- 시스템프로그래밍
- 데브옵스
- 클라우드
- 쿼리
- 쿼리최적화
- TDD
- 컴퓨터
- 공부
- 트랜잭션
- EC2
- DB
- sql
- CS
- 리눅스
- 데이터베이스
- dbms
- 오라클
- 개발방법론
- 개발자
- 개발공부
- JDBC
- Database
- 명령어
- 자바
- AWS
- 데이터베이스프로그래밍
- jdbc programming
- 서버
- 리눅스공부
- 클라우드네이티브
Archives
- Today
- Total
개발 블로그
[Linux] 파일 검색 및 조작 명령어 본문
오늘은 코드를 너무 많이 본 것 같아 퇴근 후 또 코드보면 눈이 무리일 것 같아서 짧게 리눅스 공부한거 정리
업무할 때 저는 너무 리린이(리눅스 어린이)라서 아직도 뚝딱거립니다...🥹
로그든 뭐든 빨리 빨리 검색하고 싶지만...뭐 공부도 하고 어쩌피 쓰던 명령어 위주로 계속 쓰니께 치다보면 늘겠지?
파일 검색 및 조작 명령어
1. find
- 특정 조건에 맞는 파일이나 디렉토리를 검색할 때 사용
find [경로] [조건] [액션]
- 검색 범위를 디렉토리나 파일명, 수정 시간, 크기 등으로 제한할 수 있어 매우 유연
- 옵션
- -
name
: 파일 또는 디렉토리 이름으로 검색 - -
type
: 파일 유형으로 검색 (f
는 파일,d
는 디렉토리) - -
size
: 파일 크기로 검색 - -
mtime
: 파일의 마지막 수정 시간으로 검색
- -
find /home/gaeun -name "*.txt" # gauen 홈 디렉토리에서 *.txt 검색
find /var/log -type f -name "*.log" # /var/log에서 파일 중
find / -size +100M
find /home/user -mtime -7
2. grep
- 파일 내에서 특정 패턴을 검색하는 데 사용
- 정규 표현식을 활용해 더욱 강력한 검색을 할 수 있음
grep [옵션] "패턴" [파일명]
- 주요 옵션:
- -
i
: 대소문자를 구분하지 않고 검색 - -
r
: 디렉토리 내 모든 파일을 재귀적으로 검색 - -
v
: 패턴이 일치하지 않는 줄을 출력 - -
n
: 줄 번호와 함께 검색 결과를 출력 - -
l
: 패턴이 일치하는 파일 이름만 출력
- -
grep -i "error" /var/log/syslog # 대소문자 구분 없이 파일에서 "error" 검색
grep -r "TODO" /home/user/projects # 디렉토리 내 모든 파일에서 "TODO"를 검색
grep -v "^#" /home/gaeun/example.c # 주석으로 시작하지 않는 줄을 검색
grep -n "main" example.c # exmaple.c에서 main을 줄과 함께 검색
grep -l "pattern" *.txt # pattern이 포함된 파일 이름을 출력
3. sed
(Stream Editor)
- 파일 내에서 텍스트를 대체하거나 삭제할 때 유용
- 주로 정규 표현식과 함께 사용
sed [옵션] 's/패턴/대체문자열/' [파일명]
- 주요 옵션
- -e: 명령어를 추가
- -f: 파일에서 sed 명령어를 읽어 실행
- -i: 파일을 직접 수정, 이거 안쓰면 실제 파일을 수정하는건 아님
sed 's/oldtext/newtext/g' file.txt # file.txt에서 "oldtext"를 "newtext"로 대체
sed '3d' file.txt # file.txt에서 세 번째 줄을 삭제
sed -e 's/foo/bar/' -e 's/baz/qux/' file.txt # 파일을 수정하면서 두 가지 대체 작업을 수행
sed -n '2p;4p' file.txt # 두 번째와 네 번째 줄만 출력
sed -i 's/20240801/20240827/' file.txt # 원본 파일을 수정
sed -i.backup 's/20240801/20240827/' file.txt # 원본 파일 수정하고 백업 파일 생성
4. awk
- 텍스트 데이터에서 필드를 추출하고 조작하는 데 사용
- 로그 파일 분석이나 데이터를 처리하는 데 매우 유용
awk '패턴 {액션}' [파일명]
- 파일의 특정 열을 추출
awk '{print $1, $3}' file.txt # file.txt의 첫 번째와 세 번째 필드를(공백 구분) 출력
awk '$3 > 50 {print $1, $3}' file.txt # 세 번째 필드가 50보다 크면 첫 번째, 세 번째 필드 출력
- 특정 패턴이 포함된 줄을 필터링
awk '/error/ {print $0}' /var/log/syslog # syslog 파일에서 "error"가 포함된 줄을 출력
나중에 스크립트에 잘 활용해보겠습니다
'시스템 > Linux' 카테고리의 다른 글
[Linux] 사용자 및 그룹 관리 (0) | 2024.08.22 |
---|