LINUX
Posts
477 posts[bash: awk] awk에서 영역 구분을 이용한 문자열 재구성 작업 (gensub)
예전에 sed에서 역슬래시-괄호를 이용한 영역 구분 및 문자열 재구성 작업 방법을 정리해 두었는데, 같은 종류의 작업을 awk에서도 할 수 있다. 문자열의 영역을 설정해서 자리를 바꾸거나 내용을 대체하거나 하는 등의 작업이다. 우선 awk에서 제공하는 gensub 함수를 보자. 통상적인 문자열 대체는 sub, gsub 함수를 사용할 수 있지만 영역을 설정하는 것은 gensub 함수를 이용해야 한다. (sub, gsub 함수에 대한 내용은 이전 게시물을 참고하자. 여기로) gensub 함수의 형식은 아래와 같다. gensub(/문자열 또는 정규표현식/, "대체할 문자열", 실행옵션, 대상) "대상" 문자열에서 "/문자열 또는 정규표현식/"을 찾아서 "대체할 문자열"로 바꾼다. 실행 옵션은
[bash: sed] 대용량 파일에서 특정 위치의 행만 출력하기
파일에서 특정한 행을 출력하기 위해서 sed 명령을 활용하게 되는데, 통상 아래의 예시와 같은 형태로 쓰게 된다. # my_data.txt 파일에서 124번째 행을 출력 sed -n 124p my_data.txt # my_data.txt 파일에서 100번째 행부터 110번째 행까지 출력 sed -n 100,110p my_data.txt 파일 용량이 별로 크지 않으면 위와 같은 형태로도 별 문제가 없다. 그러나 수백MB 이상의 대용량 파일에서 특정 부분을 출력해야 하는 경우에, 특히 이런 작업을 여러번 반복해야 하는 경우에는 상당한 시간이 걸릴 수 있다. 예를 들어 500MB 파일에서 100번째 행만 출력하는 상황이라도, sed는 파일을 처음부터 끝까지 다 읽은 후에 작업을 종료하기
리눅스 민트 17.3에서 인텔 I218-LM 이더넷 드라이버 설치
작업용으로 사용하기 위해 HP Z440 워크스테이션에 우분투 14.04 LTS 기반의 배포판인 리눅스 민트 17.3을 설치하였으나, 네트워크 아답터가 제대로 동작하지 않는 문제가 발생했다 -_-; 먼저 이더넷 아답터 종류를 알아보았다. 터미널창에서 아래와 같이 입력 # PCI 장치 목록에서 네트워크 아답터 확인 lspci | grep Ethernet 결과를 보니 인텔 I218-LM 기가비트 이더넷 어댑터다. 인터넷을 한참 뒤져 본 결과, 해결 방법을 찾았다. 인텔에서 드라이버를 다운로드해서 설치해야 한다. 다른 USB 네트워크 아답터를 이용하던가 해서 먼저 어떻게든 인터넷에 연결은 해야 한다. 연결이 되었으면 우선 build essential 패키지를 설치. sudo apt-ge
[bash: awk] 다중 문자열 검색 - 2
예전에 적었던 awk를 이용한 다중 문자열 검색에 대한 보충. 문자열 A와 문자열 B가 모두 포함된 경우(A and B)와 둘 중 하나가 포함된 경우(A or B)에 대하여 아래와 같이 입력하여 검색할 수 있다. 교집합(and)은 "&&", 합집합(or)은 "||" 기호를 사용하면 된다. # my_data.txt에서 A와 B가 모두 포함된 행 출력(A and B) awk '/A/ && /B/' my_data.txt # my_data.txt에서 A 또는 B가 포함된 행 출력(A or B) awk '/A/ || /B/' my_data.txt 위와 같은 형식을 이용해서 좀 더 복잡한 검색을 해 볼 수 있다. 예를 들어 첫번째 항목(field)에 A가 포함되어

![[Spoiler] 점프 신작 '공주님 고문 시간입니다' 원작자에 '우공못' 작가 그림. '시간정지용사' 또다른 플레이어? '다음에 오는 만화 대상' 운영 잡지 폐간](https://img.zoomtrend.com/2026/06/07/1780881297-ECA090ED948426-28EC95A0EB8B88EBA980EC8B9CEAB7B8EB8490.jpeg)
