2021-3-13 유닉스기초(5) 파이프라인

필터, 파이프, 와일드카드

  • 파일리다이렉션 : 파일을 이용해 명령어에 입력을 주고, 명령어의 실행 결과를 파일에 저장

  • < : 파일을 명령어의 입력으로 준다.

  • > : 명령어의 실행결과를 파일로 돌려 기록한다.

  • wc : 파일에 저장된 단어수 세어주기

    • $wc tmp
            32     480    2878 tmp => 행의 수, 단어수, 문자갯수
      $wc -l tmp
            32 tmp
      $ls | wc -l
            10
      
    • -w : 단어수, -c : 문자수, -l : 라인수 출력플래그

    • wc명령어와 를 조합해서 특정 디렉터리의 라인을 출력할 수도 있다.
    • 를 사용하면 첫번째 명령어의 출력을 두번째 명령어의 입력으로 전달할 수 있다.
  • sort : 알파벳순으로 정렬,

    • -b : 앞에붙은 공백 무시, -d : 사전순으로 정렬, -f : 단어의 대소문자 무시, -n : 산술적인 순서로 정렬, -r : 정렬 순서를 역으로

    • $ls -1F | sort -f
      Applications/
      Desktop/
      Documents/
      Downloads/
      Library/
      Movies/
      Music/
      Pictures/
      Postman/
      Public/
      
      $ls -s | sort -n => 파일의 크기순으로 출력
      
    • ls를 입력하면 한줄에 여러개가 입력, -1플래그를 토해 한줄에 1개씩 출력
  • echo *를 하면 현재 디렉터리에 있는 모든 파일들의 목록을 다 볼 수 있지만, echo t*를 하면 t로 시작하는 이름을 볼 수 있다.

    • $echo V*
      Volumes
      
      $echo *t
      opt
      
      $ls -ld [a-g]*
      drwxr-xr-x@ 38 root  wheel  1216 10 31 01:36 bin
      drwxr-xr-x   2 root  wheel    64  6  6  2020 cores
      dr-xr-xr-x   3 root  wheel  4391  3 10 11:59 dev
      lrwxr-xr-x@  1 root  admin    11  3  9 17:48 etc -> private/etc
      
    • 범위를 명시할때 기호 -를 사용 정규표현식의 [a-z]가 a부터z까지의 범위를 나타내는 의미

    • grap : 탐색할때 사용, 대소문자 구별한다.

    • egrep : 정규표현식 기반으로 탐색

    • fgrep : 파일기반의 단어 목록을 검색

      • -c : 매치되는 행의 개수만 표시, -i : 패턴에서 대소문자 무시, -l : 특정패턴을 포함하는 파일들의 이름만 표시, -n : 행번호 표시, -v : 지정한 패턴에 대응지 않는 라인들을 보여준다.

정규표현식

  • 정규표현식은 와일드카드와는 다르다.
  • 표현
    • c : 문자 c에 대응
    • \c : c를 강제로 문자 c로 읽게한다. $가 행의 끝을 나타내는 기호가 아닌 기호 ‘$’로 하려면 $
    • ^ : 행의 시작
    • $ : 행의 끝
    • . : 단일문자
    • [xy] : 지정된 집합 안의 문자
    • [^xy] : 지정된 집합 안에 있지 않은 문자
    • c* : c가 0번이상 나타난다

    느낀점

    • 모르는게 있어서 구글링을 하다보면 >, »를 이용하거나 명령어를 와 함께 조합해서 결과를 보긴했었다. 그때도 이 의미를 정확하게 이해하지 못했었는데, 이번에 공부하면서 의미를 익힐 수 있었다. 유닉스에 대해 지속적으로 학습하면서 더 자유롭게 다루고 의미를 이해하고 싶다.
Written on March 13, 2021