파이프 문자를 통해 여러 명령을 결합하면 파이프가 형성된다는 것을 이미 알고 있습니다. 일반적으로 이러한 방식으로 사용되는 명령을 필터라고합니다. 필터는 입력을 받아 어떤 방식 으로든 내용을 수정 한 다음 출력합니다.
간단히 말해서 필터는 다음 두 가지 요점으로 요약 할 수 있습니다.
- Linux 명령이 표준 입력에서 입력 데이터를 수신하고 표준 출력에서 출력 데이터 (결과)를 생성하는 경우이 명령을 필터라고합니다.
- 필터는 일반적으로 Linux 파이프와 함께 사용됩니다.
필터로 일반적으로 사용되는 명령은 다음과 같습니다.
명령 |
기술 |
awk |
텍스트 처리에 사용되는 설명 프로그래밍 언어는 일반적으로 데이터 추출 및보고 도구로 사용됩니다. |
cut |
각 입력 파일의 각 행에서 지정된 부분 (파일이 지정되지 않은 경우 표준 입력)을 표준 출력으로 출력하는 데 사용됩니다. |
grep |
하나 이상의 파일에서 지정된 패턴과 일치하는 행을 검색하는 데 사용됩니다. |
tar |
파일을 보관하는 데 사용되는 응용 프로그램입니다. |
head |
파일의 시작 부분을 읽는 데 사용됩니다 (기본값은 10 줄). 파일이 지정되지 않으면 표준 입력에서 읽습니다. |
paste |
파일을 병합하는 데 사용되는 줄입니다. |
sed |
텍스트 필터링 및 변환을위한 스트림 편집기. |
sort |
텍스트 파일의 행을 정렬하는 데 사용됩니다. |
split |
파일을 블록으로 나누는 데 사용됩니다. |
strings |
파일에서 인쇄 가능한 문자열을 인쇄하는 데 사용됩니다. |
tac |
cat 명령의 기능과 달리 파일을 역순으로 표시하거나 파일을 링크하는 데 사용됩니다. |
tail |
파일의 끝을 표시하는 데 사용됩니다. |
tee |
표준 입력에서 내용을 읽고 표준 출력 및 파일에 쓰는 데 사용됩니다. |
tr |
문자를 변환하거나 삭제하는 데 사용됩니다. |
uniq |
중복 행을보고하거나 무시하는 데 사용됩니다. |
wc |
파일의 총 줄, 단어 또는 바이트 수를 인쇄하는 데 사용됩니다. |
다음으로 몇 가지 예를 통해 필터 사용을 보여줍니다.
★ 파이프 라인에서 awk 명령 사용
awk 명령의 특정 사용법에 대해서는 직접 배우십시오.이 섹션에서는 파이프 라인에서 awk 명령의 사용을 이해하기 위해 몇 가지 간단한 예제 만 사용합니다.
예 1
시스템의 모든 계정 이름을보고 이름을 기준으로 알파벳순으로 정렬합니다.
[root] $ awk -F : '{print $ 1}'/ etc / passwd | sort adm apache avahi avahi-autoipd bin daemon dbus ftp games ... |
위의 예에서 콜론을 :컬럼 구분자로 사용하고 / etc / passwd 파일의 내용을 여러 컬럼으로 나누고 첫 번째 컬럼의 정보 (즉, 사용자 이름)를 인쇄 한 다음 출력을 파이프를 통해 sort 명령으로 보냅니다.
예 2
현재 계정에 대해 가장 자주 사용되는 10 개의 명령을 나열합니다.
[root] $ history | awk '{print $ 2}'| sort | uniq -c | sort -rn | head 140 echo 75 man 71 cat 63 su 53 ls 50 vi 47cd 40 date 26 let 25 paste |
위의 예에서 history 명령은 파이프를 통해 awk 명령에 출력을 전송합니다. awk 명령은 기본적으로 공백을 열 구분 기호로 사용하고, 내역 출력을 두 개의 열로 나누고, 두 번째 열의 내용을 파이프를 통해 정렬 명령에 대한 출력으로 보냅니다. sort 명령으로 정렬 한 후 출력은 파이프를 통해 uniq 명령으로 전송됩니다. uniq 명령은 과거 명령의 반복 발생 횟수를 계산하는 데 사용되며, uniq 명령의 출력은 sort 명령으로 반복 횟수에 따라 정렬되고 마지막으로 헤드가 사용됩니다. 이 명령은 기본적으로 상위 10 개 정보를 나열합니다.
예제 3
현재 시스템의 총 메모리 크기 (KB)를 표시합니다.
- [root] $ free | grep Mem | awk '{print $ 2}'
- 2029860
'Linux' 카테고리의 다른 글
쉘 필터 - 3장 (0) | 2020.10.21 |
---|---|
쉘 필터 - 2장 (0) | 2020.10.20 |
Linux Shell 파이프 라인에 대한 자세한 설명 - 2장 (0) | 2020.10.20 |
Linux Shell 파이프 라인에 대한 자세한 설명 - 1장 (0) | 2020.10.19 |
Linux Shell 리디렉션 (입력 및 출력 리디렉션) - 3장 (0) | 2020.10.19 |