find, xargs, 파이프
1660 단어 shell
1. 파이프 가 무엇 입 니까?
이전 프로그램의 표준 입력 을 다음 프로그램의 표준 입력 으로 하 는 것 을 말한다.
메모: 1) 파이프 명령 은 이전 명령 의 정확 한 출력 만 처리 하고 오류 출력 은 처리 하지 않 습 니 다.
2) 파이프 명령 오른쪽 명령 은 표준 입력 스 트림 명령 을 받 아야 합 니 다.
find 명령 은 터미널 (표준 출력) 에서 찾 은 파일 을 출력 합 니 다.sed 의 표준 입력 은 파일 이름 을 포함 하 는 텍스트 입 니 다.
~/Desktop/test$:ls
P1.txt P2.txt
test 폴 더 아래 P1. txt, P2. txt 두 개의 파일 이 있 습 니 다. 각 파일 의 내용 은 "string 1"이 고 find. name "P *. txt"의 표준 출력 은 화면 에 인쇄 됩 니 다.~/Desktop/test$:find . -name "P*.txt"
./P2.txt
./P1.txt
그래서 sed 는 파일 이름 을 처리 하 는 것 이지 파일 안의 텍스트 를 처리 하 는 것 이 아니다.~/Desktop/test$:find . -name "P*.txt" | sed -n 's/P/S/p'
./S2.txt
./S1.txt
xargs 는 이전 프로그램의 표준 출력 을 다음 프로그램의 명령 행 인자 로 바 꿉 니 다.
그래서 find. - name "P *. txt"를 되 돌려 줍 니 다./P2. txt,./P1. txt. 는 find. - name "P *. txt"| xargs sed - n 's/string 1/string 2/p' 의 다음 명령 은 실제 sed - n 's/string 1/string 2/p' P1. txt P2. txt 입 니 다. 즉, 파일 이름 이 아 닌 파일 을 처리 합 니 다.
~/Desktop/test$:find . -name "P*.txt" | xargs sed -n 's/string1/string2/p'
string2
string2
마찬가지 로 우 리 는 grep 명령 을 사용 할 수 있다.~/Desktop/test$:find . -name "P*.txt" | grep 'P'
./P2.txt
./P1.txt
상하 양자 의 차 이 를 비교한다.~/Desktop/test$:find . -name "P*.txt" | xargs grep 'string1'
./P2.txt:string1
./P1.txt:string1
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
✨〰️ ZI 〰️✨ Vim 구문❮ ZI ❯ 🧙♀️ Zsh를 위한 스위스 아미 나이프. 모든 것을 함께 붙일 수 있도록 설계되었습니다. zsh 유형의 파일에 있는 명령에 대한 Vim 구문 정의입니다. 📥 설치 Vim 플러그인으로 로드합니다. 예를...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.