델리미터(Delimeter)로 컬럼이 분기된 텍스트 파일(보통은 아마도 로그파일)을 다룰 때 가장 손쉽게 쓸 수 있는 도구가 awk 입니다. 물론 cut 등도 있지만 탐색한 이후의 작업을 주로 담당하기 때문에 탐색시에는 역시 awk 가 대세입니다. (당연하겠습니다만 awk 도 정규표현식의 탐색을 지원하니 자세한 내용은 글 맨 아래의 포스팅 링크를 참고해 주세요.)
awk 에서 특정 컬럼의 값을 표현하는 방법은 여러가지가 있습니다. 그동안 많이 사용했던 패턴은 아래와 같은 방식이었는데요 이 방식에서도 or, and 조건을 사용하는 것은 문제가 없습니다. 조건을 동시에 만족하는 경우를 찾으려면 &&를, 어느 하나라도 만족하는 경우를 찾으려면 || 를 사용하면 됩니다.
// AND (&&)
awk '$2=="" && $19~/my/ {print $11, $24}'
// OR (||)
awk '$2=="" || $19~/my/ {print $11, $24}'
이렇게 표현하는 방법 외에 브레이스({}) 안쪽에 if 문을 넣어서 사용하는 방법도 있습니다. 어느 방법을 사용하던 원하는 결과를 얻을 수 있으면 되니 손에 더 감기는 방법을 사용하면 좋을 것 같습니다. NOT 조건을 사용하는 경우에도 보다 쉽고 명시적으로 읽을 수 있어서 이 방법을 개인적으로는 선호하는 편입니다.
// AND (&&)
awk '{ if ($5=="/test" && $3=="GET") print $0}'
// OR (&&)
awk '{ if ($5=="/test" || $5=="/beta") print $0}'
// NOT (!)
awk '{ if (!($5=="/test")) print $0}'
rsync 를 이용하는 방법은 참 여러가지가 있습니다.
간단하게는 FTP 를 설치하지 않고 원격 서버에 파일을 업로드, 다운로드 하는 경우가 있겠는데요
나이가 들어서인지 자꾸 커맨드가 기억나지 않아 만들어 두고 Ctrl C, V 하고자 합니다
도움이 되실 분들이 있을 것 같아 블로그에 간단하게 남깁니다.