누군가 다음 명령의 구문을 설명해 줄 수 있나요? 그들이 무엇을 하는지는 알지만 구문을 파악하기가 어렵습니다.
find / -type f -exec grep -H 'text-to-find-here' {} \;
cat access.log | cut -d '"' -f3 | cut -d ' ' -f2 | sort | uniq -c | sort -r
sudo cat error_log.20150205 | grep mpmstat | grep -v "," | cut -d: -f4- | grep -v ":" | sed -e's/rdy//g' | sed -e 's/bsy\|wr\|ka\|log\|dns\|cls\|rd/,/g
답변1
find
/
→ 루트 디렉터리에서 검색
-type f
→ 파일만 선택( f
) → 명령어를 실행하여
-exec ....{} \;
찾은(파일) 이름을 하나씩 {}
삽입 grep -H 'test-to-find
→ 찾은 파일마다 이 grep 실행find
cat access.log |
→ 파일을 stdout으로 출력하고 다음 명령으로 파이프
cut -d '"' -f3 |
→ 행을 분할 "
하고 필드 3만 출력, 다음 명령으로 파이프
cut -d ' ' -f2 |
→ 공백을 기준으로 필드 3을 잘라내어 두 번째 필드를 가져오고 다음 필드로 파이프
sort | uniq | sort -r
→ 출력을 정렬하고 제거 중복, 역순으로 정렬( -r
) (마지막 명령은 일부 버전에서 하나의 명령으로 수행할 수 있으며
첫 번째 명령은 중복되므로 쓸 수 있습니다)sort
sort -ur
cat
< access.log cut -d '"' | ....
sudo cat error_log.20150205 |
→ 루트 권한(파일 접근 권한?)으로 cat 실행
grep mpmstat |
→ 단어가 있는 줄만 선택 → 쉼표가 있는 줄은 mpmstat
grep -v "," |
선택 해제( ) → 구분 기호 ':'를 기준으로 여러 필드로 분할, 4번째 필드 이상 가져옴. → ':'으로 줄을 억제합니다(이전 구분 문자이기 때문에 가능성이 낮음) → 각 줄의 순서 바꾸기( ) → 다양한 대안을 쉼표로 바꾸기( wr \|`)-v
cut -d: -f4- |
grep -v ":" |
sed -e's/rdy//g' |
s
rdy
g
sed -e 's/bsy\|wr\|ka\|log\|dns\|cls\|rd/,/g
bsy,
, etc, separated by