[bash: awk] 특정 위치(field)에 대한 정규표현식 문자열 검색
By 반달가면 | 2017년 4월 11일 |
awk에서 특정한 위치(field)에 대하여 문자열을 검색하는 방법은 이전에도 정리해 둔 바가 있지만(여기로), 정규표현식(regular expression)으로 검색할 수 있는 훌륭한 방법이 있어서 이것도 정리해 두기로. 예를 들어 my_data.txt 파일에서 3번째 단어가 두자리 16진수인 경우(00~FF)에만 행 전체를 출력하는 상황을 생각해 보자. 정규표현식으로는 "^[0-9A-Fa-f][0-9A-Fa-f]$" 이렇게 될 것이다. awk에서 "[위치] ~ /문자열/" 형식으로 지정해 주면 된다. 터미널창에서 아래와 같이 입력. # my_data.txt에서 세번째 단어가 두자리 16진수면 행 전체 출력 awk '$3 ~ /^[0-9A-Fa-f][0-9A-Fa-f]$/ { print $0
[bash: awk] 각 항목별 합계 계산
By 반달가면 | 2018년 8월 14일 |
텍스트 파일에 각 항목별로 값이 있을 때, 같은 항목끼리 모아서 그 합을 구하는 방법이다. 간단한 예시를 생각해 보면 쉽게 감이 잡힐 것이다. 텍스트 파일 my_data.txt의 내용이 아래와 같다고 가정하자. 각 항목의 구분자는 탭(tab)이다. # my_data.txt 파일 내용 확인(구분자는 탭) cat my_data.txt 2018.1.3 apple 10 2018.1.3 orange 3 2018.2.5 pineapple 7 2018.3.10 apple 2 2018.3.15 pineapple 10 2018.3.30 apple 9 위와 같이 날짜마다 어떤 과일을 몇개 팔았는지 기록했다고 생각해 보자. 이제 여기서 각 과일별로 총 몇개씩 판매했는지 알고 싶은 것이다. 첫번째 항
우분투 14.04 기반 배포판에서 16.04 / 18.04의 S/W 저장소 미러를 구성하는 문제(apt-mirror 오류)
By 반달가면 | 2019년 4월 11일 |
apt-mirror를 이용해서 우분투 S/W 저장소(software repository)의 미러(mirror) 서버를 구성하는 방법은 이전 게시물을 참고하자. 여기로 우분투 14.04 LTS 기반 배포판인 리눅스 민트 17에서 apt-mirror로 우분투 14.04(trusty), 16.04(xenial), 18.04(bionic)의 S/W 저장소 미러를 구축해서 사용하던 중, 한가지 문제가 발생했다. 14.04 기반의 클라이언트에서는 별 문제가 없었는데, 16.04와 18.04 기반의 클라이언트에서 저장소 정보 갱신을 위해 "sudo apt-get update" 명령을 입력하면 오류가 발생했다. 예를 들어 18.04 클라이언트의 경우 /ubuntu/dists/bionic/main/dep11/C
[라즈베리파이] 워크큐(Workqueue) 소개
By Guillermo Austin Kim | 2018년 8월 16일 |
워크큐는 인터럽트 후반부 처리 기법으로 많이 알려져 있는데 커널 전반에서 후반부를 처리하는 기법입니다. 인터럽트 후반부는 물론이고 프로세스 컨택스트 후반부 처리 용도로도 많이 씁니다. 즉, 어떤 코드에서도 워크큐를 써서 후반부 처리를 할 수 있다는 의미입니다. 그동안 배웠던 IRQ Thread와 Soft IRQ 와 같은 인터럽트 후반부 처리 기법과 워크큐를 비교하면서 워크큐의 특징을 알아보겠습니다. IRQ Thread는 인터럽트 후반부 처리 전용 쓰레드이며 threaded IRQ 방식으로 인터럽트 후반부 처리를 할 수 있습니다. 마찬가지로 워크큐도 인터럽트 후반부 용도로 쓸 수 있습니다. 그런데 인터럽트 발생 빈도가 높거나 더 안정적인 코드 유지 보수를 위해서 IRQ Thread 기법 적용을 선호합니다.