Programming/Linux
[리눅스] 파이프 및 리디렉션
kevin_01
2024. 1. 23. 11:22
728x90
파이프 및 리디렉션 개념
한 명령이나 스크립트에서 다른 명령이나 스크립트로 전송된 일부 정보를 보내거나 검색하는데 사용(파일에서도 작동)
- 파일의 줄수 계산
- 한 파일에서 고유한 값을 선태하고 다른 파일에 씀
- 파일이나 시스템에서 일부 문자열의 발생을 찾습니다.
grep
명령어는 출력에서 특정 패턴을 검색한다.출력은 파일이거나 다른 명령의 출력일 수 있다.
wc
단어, 개행 수를 계산 하는 유틸리티
파이프 |
- 원하는 만큼 파이프를 결합할 수 있다
command1 | command2
command1 | command2 | command3
- 원하는 명령어를 통해 다양한 결과를 한번에 실행할 수 있다
- number.txt → 1 ~ 100 까지의 수 10000줄
cat numbers.txt | wc -l
→ 10000cat numbers.txt | uniq | wc -l
→ 9904cat numbers.txt | sort | uniq | wc -l
→ 100
파일로 리디렉션 >
>>
- 출력을 파일로 리디렉션 하는 과정
- 일반적으로 모든 출력은 화면으로 이동한다.
- 화면에 표시된 출력을 파일로 옮기기
>
ls -al > directorylist.txt
- 파일에 더 많은 내용을 쓰기 작은 파일을
.profile
cat
명령어를 통해directorylist.txt
파일에 추가하기.cat .profile > directorylist.txt
- 리디렉션은 다음과 같이 수행된다.
- 파일이 없으면 생성.
- 리디렉션된 출력의 콘텐츠 추가.
- 파일이 존재하고 비어 있지 않으면 파일을 지우고 리디렉션된 출력을 빈 파일에 쓴다. - 다시 써버린다
- 파일에 추가하려면
>>
을 사용해야 한다.cat .profile >> directorylist.txt
echo ‘this is my code’ >> directorylist.txt
- 정리
- 파일이 생성되고 모든 데이터를 새 파일로 다시 작성한다는 점을 기억해야 한다
>>
유사하게 작동하지만 채우기에 콘텐츠가 있는 경우 이 리디렉션은 기존 콘텐츠 끝에 명령 출력을 추가한다.
파일에서 리디렉션
- 반대방향으로도 가능하다.
- 인쇄하는 방법
cat numbers.txt
- 이 파일을 명령입력으로 사용해보기
- 파일의 줄 수 출력 방법
cat numbers.txt | wc -l
→ 좋은 방법은 아니다wc -l numbers.txt
→ 파일이름도 함께 출력된다.- 파일이름 제거 방법 →
wc -l numbers.txt | awk '{print $1}'
ORawk 'END{print NR}' numbers.txt
- 하지만 우리는 라인 수를 계산하기 위해서 리디렉션을 사용하고 싶다.
wc -l < numbers.txt
- 파일이름이 제거된 숫자- 이 숫자를 다른 파일에 쓰기
wc -l < numbers.txt > count.txt
cat count.txt
- 인쇄하는 방법
728x90