Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[20211215] Linux 각종 명령어(find, xargs, zgrep, awk, cut, sort, uniq) #235

Open
JuHyun419 opened this issue Dec 15, 2021 · 0 comments
Labels

Comments

@JuHyun419
Copy link
Owner

JuHyun419 commented Dec 15, 2021

find 명령어 옵션

  • 예시
find . -name pmonitor_access.\*.gz -print0 | xargs -0 zgrep 200 | awk '{print $9}' | cut -f1 -d"?" |sort |uniq -c

pmonitor_access..*gz

  • pmonitor_access 로 시작하고 gz로 끝나는 모든 파일 찾기
  • 'pmonitor_access.*' 와 동일한 명령어

-print vs -print0

  • -print : 검색결과 출력, 검색 항목은 newline으로 구분(default)
  • -print0 : 검색결과 출력, 검색 항목은 null로 구분
// -print
pmonitor_access.20211215.gz
pmonitor_access.20211214.gz
pmonitor_access.20211213.gz
pmonitor_access.20211212.gz
pmonitor_access.20211211.gz
pmonitor_access.20211210.gz


// -print0
pmonitor_access.20211215.gz pmonitor_access.20211214.gz pmonitor_access.20211213.gz pmonitor_access.20211212.gz pmonitor_access.20211211.gz pmonitor_access.20211210.gz

xargs

  • Standard Input을 받아서 다른 명령의 인수로 넘긴다.
  • 앞선 명령에 대한 결과를 받아서 그 다음 명령을 실행
  • 경로가 필요할 때는 무조건 xargs 사용

grep, zgrep

  • grep : 일반 파일에서 원하는 문자 및 문자열 검색
  • zgrep : 압축된 파일에서 원하는 문자 및 문자열 검색 가능
    • grep 명령어의 옵션을 따름

awk

  • 파일을 원하는대로 필터링하거나 추가하거나 기타 가공을 통해 나온 결과를 행과 열로 출력

awk 'pattern' filename

  • awk '{print $9}' : 9번째 필드 변수 print
홍 길동 3324    5/11/96 50354  
임 꺽정 5246    15/9/66 287650  
이 성계 7654    6/20/58 60000  
정 약용 8683    9/40/48 365000 

$ awk '{print $1}' file
>
홍
임
이
정

cut

  • 파일에서 필드 추출
  • 필드는 구분자로 구분할 수 있음
    • c 문자위치 : 잘라낼 곳의 글자 위치 지정
    • f 필드 : 잘라낼 필드 지정
    • d 구분자 : 필드를 구분하는 문자 지정(default : 탭)
aaa?bbb?ccc
ddd?eee?fff

$ cut -f1 -d"?"
> aaa
ddd

sort

  • 정렬
    • -r, --reverse : 역순으로 정렬한다.
    • -k, --key=POS1 : 정해진 필드를 기준으로 정렬한다. ex) sort -k2 : 2번째 필드로 정렬
    • -u, --unique : 정렬 후 중복된 내용을 제거한다.
    • -t, --field-separator=SEP : 필드 구분자를 지정, -k 옵션으로 필드를 지정해서 사용할 때 좋다.
    • -f, --ignore-case : 대소문자를 구분하지 않고 정렬한다.
// 원본 파일
4 b
3 d
2 c
2 a
1 e
5 f

// k1 : 첫 번째 필드 기준 정렬(숫자)
# sort -k1 file
1 e
2 a
2 c
3 d
4 b
5 f

// k2 : 
# sort -k2 file
2 a
4 b
2 c
3 d
1 e
5 f

uniq

  • 중복된 내용의 행이 연속으로 있으면 하나만 남기고 삭제

References

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

1 participant