Linux

LINUX : PIPING OPERATOR

Frisbeen 2025. 4. 20. 19:03

Pipe (|)의 핵심 개념 요약 (실압근)

  • 파이프란? → 한 명령어의 출력을 다음 명령어의 입력으로 넘기는 것 → 임시 파일 없이, 메모리 상에서 직접 전달되므로 빠르고 효율적임-> 중요한 점은, 메모리상에서 직접 전달 + 임시 파일 생성 없다는 것.

예시 명령어들

1. ls /etc | wc -l

  • /etc 디렉토리 내의 항목 개수를 셈
  • ls 결과를 wc -l에 넘김

2. ls /etc | less

  • ls 결과가 길 경우, less로 스크롤하며 확인
  • 종료는 q

ACTION #1 .중복된 줄이 총 몇 줄인가?

  • 기본적으로 연속된 중복 줄만 제거
  • 중복 제거 전 sort로 정렬 필요
  • pipe op에서 파일 명시는 한번이면 족하다. (중요)
  • sort file.txt | uniq file.txt | less file.txt 이래 하지말자.
  • 이러면 piping의 흐름이 끊어지는 것 
sort file.txt | uniq | wc -l

 

  • 고유한 줄 개수를 셈

참고 :  여러 줄 입력 파일 만들기 (언제까지 에코 + 할당만 할래)

1. echo 여러 줄 (임시)

echo -e "apple\nbanana\napple" > myfile.txt

2. 직접 입력 (EOF 방식) cat > file.txt 

에코 남발해서 >> (appending)해도 괜찮겠다만, 간지가 떨어지겠다.

cat > file.txt 해서 너가 원하는대로 만들고, + ctrl +D로 입력 종료하자

cat > myfile.txt
apple
banana
apple
[Ctrl + D]  # 입력 종료

요약

  • |는 파일 없이 명령어들을 직접 연결
  • sort | uniq | wc -l → 중복 없이 고유한 줄 개수 계산
  • cat > file로 직접 텍스트 파일 작성 가능
  • 성능상 유리하고, 파일 이름 불필요하며, 메모리 내에서 처리됨