1. 파일 필터
파일의 내용 중 원하는 부분을 검색하거나 파일에 내용을 쓰거나 출력하고 또는 기존파일에 추가하여 내용을 쓸 수 있는데, 이는 파일 필터를 활용한 명령어를 이용합니다.
즉, 파일내 지정된 패턴이 있는지 찾아내기 위하여 파이프 필터(|)와 grep 명령을 사용합니다.
① grep
∙grep(Globally find Regular-Expression and Print : 지정된 표현식이 전체에 있는지 찾아서 프린트 함) 명령의 사용형식
∙grep patten filename : 주어진 패턴이 있는지 해당 지정된 파일이나 또는 확장파일형식으로 검색
예1) grep “gh” abc.txt : abc.txt파일안에 gh라는 문자가 있으면 출력
예2) grep “gh” *.txt : 모든 .txt로 명칭이 끝나는 파일을 대상으로
파일안에 gh라는 문자가 있으면 출력하라
∙~ | grep patten : 필터를 이용하여 검색하는 방식으로 주어진 패턴을 검색하는 방법은 동일합니다.
예) cat abc.txt|grep gh : abc.txt파일을 전부출력하고,
그 출력을 받아서 gh라는 글자를 찾음. 결국 같은 결과가 나옴
② grep 주요 옵션
∙w : 전체 단어가 일치되는 경우 출력
∙n : 라인넘버 출력
∙v : 단어가 일치하지 않는 경우 출력
∙l : 해당되는 파일명을 출력
예) cat xinetd.conf|grep –nw telnetd : xinetd.conf파일내용 중
“telnetd”라는 단어가 정확히 일치하게 들어간 라인 수를 출력
예시
kopoctc@kopoctc:~/mydir$ cat abc.txt
abc
def
ghi
jkl
mno
p
kopoctc@kopoctc:~/mydir$ grep "gh" abc.txt
ghi
kopoctc@kopoctc:~/mydir$ cat abc.txt|grep gh
ghi
kopoctc@kopoctc:~/mydir$ cat abc.txt|grep -w gh
kopoctc@kopoctc:~/mydir$ cat abc.txt|grep -n gh
3:ghi
kopoctc@kopoctc:~/mydir$ cat abc.txt|grep -v gh
abc
def
jkl
mno
p
2. 리다이렉션(Redirection)
명령어의 결과를 다른 명령어의 입력으로 사용하는 경우나, 명령어의 결과를 파일에 기록하는 경우에 리다이렉션 기호를 사용합니다.
① 파이프(|)
∙명령1 | 명령2 : (파이프) 어떤 명령의 결과를 받아 다른 명령을 실행
예) cat abc.txt | grep gh : 첫 번째 명령 abc.txt파일을 전부출력하고,
그 출력을 받아서 두 번째 명령인 gh라는 글자를 찾음.
② 리다이렉션, 꺽쇠 (>, >>)
∙명령 > filename : 어떤 명령의 결과를 지정된 명칭의 파일을 새로 생성하여 기록
∙명령 >> filename : 어떤 명령의 결과를 지정된 명칭의 파일 뒤로 계속 붙여서 기록함
∙명령 < filename : 어떤 명령의 입력으로 지정된 명칭의 파일을 사용함
예 1) cat xinetd.conf > a.file : xinetd.conf파일을 출력하고
이 결과를 a.file에 기록, 만일 a.file의 명칭으로 파일이 존재하였다면, 이를 무시하고 새로 생성하고 기록함
예 2) cat xinetd.conf >> a.file : xinetd.conf파일을 출력하고
이 결과를 a.file에 기록하는데 기존 a.file의 맨끝부터 추가하여 기록함. 만일 a.file이 없다면 에러가 발생
예 3) cat xinetd.conf|grep telnet > a.file : 여러 가지 명령을 계속해서 연결하여 사용할 수 있음.
xinetd.conf파일을 출력하고, 이 결과중 telnet이라는 문자열이 있으면 그 줄 만 출력하는데,
그 결과를 a.file에 기록함. 이때 telnet이라는 문자열이 있는지 화면에는 출력하지 않고 파일에만 기록됨.
예 4) cat > aa : cat 명령어 뒤에 파일명이 지정되지 않으면 기본 키보드 입력을 받 음.
cat > aa이라고 명령후 엔터를 치면 화면이 대기모드가 되며 키보드로 입력되는 값을 받음.
키보드 입력을 하고 최종 ctrl+c로 입력을 종료하면
지금까지 키보드로 입력한 내용이 aa이라는 파일에저장되어있음
예 5) grep gh > abc.txt : grep gh명령을 실행하는데 abc.txt가 입력으로 사용.
결국 cat abc.txt |grep gh 와 동일한 명령이 됨
예시
kopoctc@kopoctc:~/mydir$ cat aa
aaa sasa
kopoctc@kopoctc:~/mydir$ cat > aa aa
aa
^C
kopoctc@kopoctc:~/mydir$ cat aa aa
aa
kopoctc@kopoctc:~/mydir$ cat >> aa sdasa
sasa
^C
kopoctc@kopoctc:~/mydir$ cat aa aa
aa sdasa sasa
'OS > Linux&Unix' 카테고리의 다른 글
[Linux/Unix] grep / egrep 차이점? (0) | 2022.09.21 |
---|---|
[Unix/Linux] 리눅스 쉘 hostname에 bash-4.2 가 표시될 때 수정 (0) | 2022.09.21 |
[Unix/Linux] df / du 의 차이점 (0) | 2022.09.15 |
[Unix/Linux] 사용자 계정 패스워드 초기화 방법 (0) | 2022.09.15 |
[Unix/Linux] 리눅스 쉘에 절대경로 표시하기 (0) | 2022.09.15 |