출력

포스트: 44
Tags

Posts

44 posts

리눅스에서 파일이 매우 많은 디렉토리에 대한 ls 명령 실행속도 향상 (-f 옵션)

반달가면|2018년 11월 29일

간단한 내용이지만, 간혹 요긴할 때가 있어 정리해 두기로. 리눅스에서 디렉토리 하위에 상당히 많은 파일이 있을 경우, ls 명령을 입력하면 시간이 상당히 오래 걸릴 수 있다. 특히 속도가 느린 HDD에서는 더욱 두드러질 수 있다. 출력이 느린 이유중 하나는 ls에서 조회한 내용을 출력할 때 정렬(sorting)을 하기 때문이다. 항목이 많지 않을 때는 문제가 없지만 항목이 꽤 많을 경우엔 정렬에 소요되는 시간도 무시할 수 없게 된다. 이런 상황일 경우 -f 옵션을 추가해서 정렬하지 않고 바로 결과를 출력하도록 할 수 있다. # -f 옵션: 정렬 비활성화(do not sort) ls -f 예를 들어 특정한 문자열이 포함된 파일이 있는지 유무를 확인하려 할 경우에 굳이 정렬로 시간을 낭비

[bash: awk] 문자열을 검색해서 일치하는 부분만 출력하기(match, substr)

반달가면|2018년 11월 13일

awk에서 특정 문자열 패턴과 일치하는 부분이 있을 경우, 일치하는 부분만 출력하는 방법이다. grep에서 -o 옵션으로 일치하는 부분만 골라서 출력하는 것과 동일한 기능이나(grep의 -o 옵션에 대한 내용은 이전 게시물을 참고하자. 여기로), awk에서는 좀 더 복잡한 작업들과 조합해서 사용할 수 있으므로 알아두면 편리하다. 아래의 예시를 보자. 입력된 행에 문자열 "abc"가 있는지 확인하여 있을 경우 해당 부분만 출력하는 경우다. echo "abcdefg" | awk 'match($0,/abc/) { print substr($0,RSTART,RLENGTH) }' abc match 함수를 이용하여 일치하는 부분이 있는지 확인한 후에 문자열 일부를 출력하기 위해 substr 함수를 사용

리눅스 bash 스크립트에서 연관 배열의 인덱스(index)/키(key) 출력하기

반달가면|2018년 10월 1일

우선 리눅스 bash 스크립트에서 연관 배열(associative array) 사용에 대한 기본적인 내용도 이전 게시물을 참고하자. 여기로 배열을 정의해서 사용할 때 배열의 인덱스(index) 또는 키(key)를 확인해야 할 경우가 있다. 일반적인 배열은 인덱스를 수자로 사용하므로 굳이 인덱스를 별도로 확인할 일이 별로 없겠지만, 문자열을 인덱스/키로 사용하는 연관 배열의 경우에는 좀 다를 수 있다. 아래의 예시를 보자. # 변수 arr_x를 연관 배열로 선언 declare -A arr_x # 값 할당 arr_x[abc]=10 arr_x[def]=5 arr_x[xyz]=0 # 인덱스 abc에 저장된 내용 출력 echo "${arr_x[abc]}" 10 배열의 인덱스

[bash: sed] 출력 또는 제거할 범위를 문자열 패턴으로 지정하기

반달가면|2018년 9월 12일

sed에서 행번호를 이용해서 범위를 지정하는 방법은 이전 게시물을 참고하자. 기본적인 내용은 대략 아래와 같다. # my_data.txt 파일의 10번째 행 출력(p). -n 옵션으로 전체 출력은 억제(해당 조건에 맞는 행만 출력) sed -n 10p my_data.txt # my_data.txt 파일의 10~20번째 행 출력 sed -n 10,20p my_data.txt # my_data.txt 파일에서 10번째 행을 제거(d)하고 나머지 출력 sed 10d my_data.txt # my_data.txt 파일에서 10~20번째 행을 제거하고 나머지 출력 sed 10,20d my_data.txt 위의 예시에서 행번호 대신 특정 문자열을 기준으로 할 경우에는 "/문자열/" 형