반응형
프로세스 치환
프로세스 치환(Process Substitution)은 리눅스 쉘에서 사용되는 고급 기법 중 하나입니다. 이 기법은 하나의 명령어의 출력을 다른 명령어의 입력으로 연결하는 파이프라인과 유사하지만, 두 명령어를 동시에 실행할 수 있으며, 일반 파일을 읽고 쓰는 것처럼 두 명령어 간의 데이터 흐름을 처리합니다.
프로세스 치환의 두 가지 형태
<()
: 명령어의 출력을 파일처럼 읽을 수 있는 임시 파일로 만듭니다.>()
: 파일처럼 데이터를 명령어로 쓸 수 있는 임시 파일로 만듭니다.
예시: <()
사용하기
<()
형태의 프로세스 치환은 일반적으로 명령어의 출력을 다른 명령어의 파일 입력으로 사용할 때 적합합니다.
diff <(ls dir1) <(ls dir2)
이 명령은 dir1
과 dir2
두 디렉터리(디렉터리)의 내용을 비교합니다. ls dir1
과 ls dir2
명령의 출력이 각각 임시 파일처럼 취급되어 diff
명령의 두 입력 파일로 사용됩니다.
예시: >()
사용하기
>()
형태의 프로세스 치환은 일반적으로 명령어의 입력을 다른 명령어의 출력으로 사용할 때 적합합니다. 다음은 >()
의 사용 예시입니다:
tee >(grep 'pattern1' > file1) >(grep 'pattern2' > file2) < inputfile
이 명령은 inputfile
의 내용을 tee
를 통해 두 개의 grep
명령어로 보내고, 각각의 grep
명령은 지정된 패턴과 일치하는 라인을 별도의 파일(file1
과 file2
)에 저장합니다.
프로세스 치환은 복잡한 데이터 흐름을 필요로 하는 스크립트나 명령어에서 매우 유용하게 사용됩니다. 하지만 모든 쉘에서 지원되는 기능은 아니며, 주로 Bash 쉘에서 사용됩니다.
반응형
'Linuxpia > 리눅스 사용 팁' 카테고리의 다른 글
Bash에서 문자열을 파이핑하여 명령을 실행 (78) | 2024.04.28 |
---|---|
[리눅스 팁] bash에 문자열을 인수로 전달해서 명령 실행하기 (66) | 2024.04.27 |
변수를 인용 부호(따옴표) 안에 넣었을 때와 넣지 않았을 때의 차이 (62) | 2024.04.25 |
치환(command substitution)을 사용하여 명령 실행 (65) | 2024.04.24 |
[리눅스 팁] 명령의 성공 또는 실패 여부를 나타내는 종료 코드 (59) | 2024.04.22 |