logo

Unix 또는 Linux에서의 파이핑

파이프는 추가 처리를 위해 하나의 명령/프로그램/프로세스의 출력을 다른 명령/프로그램/프로세스로 보내기 위해 Linux 및 기타 Unix 계열 운영 체제에서 사용되는 리디렉션(표준 출력을 다른 대상으로 전송)의 한 형태입니다. . Unix/Linux 시스템에서는 명령의 stdout을 다른 명령의 stdin에 연결할 수 있습니다. 파이프 문자를 사용하여 그렇게 할 수 있습니다. '|' .

파이프는 두 개 이상의 명령을 결합하는 데 사용되며, 여기서 한 명령의 출력은 다른 명령의 입력으로 작동하고, 이 명령의 출력은 다음 명령의 입력으로 작동할 수 있습니다. 또한 두 개 이상의 명령/프로그램/프로세스 간의 임시 연결로 시각화될 수도 있습니다. 추가 처리를 수행하는 명령줄 프로그램을 필터라고 합니다.



파완딥 라잔

명령/프로그램/프로세스 간의 이러한 직접 연결을 통해 동시에 작동할 수 있으며 임시 텍스트 파일이나 디스플레이 화면을 통해 데이터를 전달하는 대신 지속적으로 데이터를 전송할 수 있습니다.
파이프는 단방향입니다. 즉, 데이터는 파이프라인을 통해 왼쪽에서 오른쪽으로 흐릅니다.

통사론:

command_1 | command_2 | command_3 | .... | command_N>

Unix 또는 Linux에서의 파이핑 예

1. 모든 파일과 디렉터리를 나열하고 Linux에서 파이핑을 사용하여 `grep` 명령에 입력으로 제공합니다.

ls | grep file.txt>

ls | grep 파일.txt



먼저 `ls`를 사용하여 현재 디렉토리의 모든 파일과 디렉토리를 나열한 다음 출력을 `grep` 명령에 전달하고 파일 이름 `file.txt`를 검색합니다. ls 명령의 출력은 grep 명령의 입력으로 전송되고 결과는 검색어와 일치하는 파일 목록입니다.

2. 모든 파일과 디렉터리를 나열하고 Linux에서 파이핑을 사용하여 `more` 명령에 대한 입력으로 제공합니다.

$ ls -l | more>

$ ls -l | 더

more 명령은 $ ls -l의 출력을 입력으로 사용합니다. 이 명령의 최종 효과는 ls -l의 출력이 한 번에 한 화면에 표시된다는 것입니다. 파이프는 ls -l의 출력을 가져와서 more에 입력으로 제공하는 컨테이너 역할을 합니다. 이 명령은 파이프가 주 메모리에 구현되어 있으므로 ls -l의 표준 출력을 more의 표준 입력에 연결하는 데 디스크를 사용하지 않습니다.
I/O 리디렉션 연산자 측면에서 위 명령은 다음 명령 시퀀스와 동일합니다.



$ ls -l ->temp more -> temp (또는 more temp) [temp의 내용] rm temp>
온도

ls -l -> 임시

위 두 명령의 출력은 동일합니다.

3. Linux에서 파이핑을 사용하여 파일 목록을 크기별로 정렬

ls -l sort -k 5>
ls -l 정렬 -k 5

이 명령은 현재 디렉터리의 모든 파일을 나열한 다음 'sort' 명령을 사용하여 파일 크기를 나타내는 다섯 번째 열을 기준으로 목록을 정렬합니다.

4. Linux에서 파이핑을 사용하여 파일을 정렬하고 고유 값을 인쇄하려면 sort 및 uniq 명령을 사용하세요.

$ sort record.txt | uniq>

그러면 주어진 파일이 정렬되고 고유한 값만 인쇄됩니다.

Record.txt 정렬 | 유니크

맵 자바가 뭐야?

5. 파일의 특정 범위에 있는 행을 인쇄하려면 head 및 tail을 사용하십시오.

$ cat sample2.txt | head -7 | tail -5>

이 명령은 (head -7) 명령을 통해 처음 7줄을 선택하고 (tail -5) 명령에 입력되어 최종적으로 해당 7줄 중 마지막 5줄을 인쇄합니다.

고양이 샘플2.txt | 머리 -7 | 꼬리 -5

6. ls 및 find를 사용하여 일치하는 파일의 특정 패턴과 일치하는 모든 행을 나열하고 인쇄합니다.

$ ls -l | find ./ -type f -name '*.txt' -exec grep 'program' {} ;>

이 명령은 다음과 같은 파일을 선택합니다. .txt 주어진 디렉토리에 확장자를 추가하고 위의 예에서 프로그램과 같은 패턴을 검색하여 프로그램이 있는 패턴을 인쇄합니다.

ls -l | find ./ -type f -name *.txt -exec grep 프로그램 {} ;

7. cat, grep, tee 및 wc 명령을 사용하여 사용자로부터 특정 항목을 읽고 파일에 저장한 후 줄 수를 인쇄합니다.

$ cat result.txt | grep 'Rajat Dua' | tee file2.txt | wc -l>

이 명령은 라자트 두아 file2.txt에 저장하고 일치하는 총 줄 수를 인쇄합니다. 라자트 두아

자바 문자열을 문자로

고양이 결과.txt | grep 라자트 두아 | 티 파일2.txt | 화장실 -l

8.파이핑된 명령의 출력을 Unix 또는 Linux의 파일로 어떻게 리디렉션할 수 있나요?

리디렉션 연산자 `>`를 사용하여 파이프된 명령의 출력을 리디렉션할 수 있습니다.

예를 들어:

파일 이름이 `file.txt`이고 이를 파일 이름 `geeks.txt`로 리디렉션하려는 경우.

 ls | grep 'file'>긱스.txt>
괴짜.txt

ls | grep '파일'> geeks.txt

결론

파이핑은 Unix 및 Linux 운영 체제의 강력한 기능으로, 다양한 명령을 함께 연결하여 복잡한 작업을 빠르고 효율적으로 수행할 수 있도록 도와줍니다. 이 기사에서 우리는 한 명령의 출력을 다른 명령의 입력으로 리디렉션하는 방법을 배웠습니다. 전반적으로 파이핑을 사용하면 시간을 절약하고 생산성을 향상하며 디스크 공간 사용량을 줄일 수 있다고 말할 수 있습니다.