AWK
Posts
23 posts[bash: nl, awk] 결과 출력에 행번호를 같이 표시하기
화면에 결과를 출력할 때 행번호를 같이 표시할 필요하 있다면 nl을 이용할 수 있다. 아래의 예시를 보자. cat my_file.txt | nl 1 abc 2 def ... nl에서 아무련 옵션을 주지 않았을 경우, 6칸을 행번호 폭으로 할당하고 행번호와 출력 내용은 탭(tab)으로 구분된다. 만약 행번호의 폭을 1칸으로 하려면 -w 옵션을 사용하고, 구분자를 바꾸고 싶다면 -s 옵션을 사용하면 되겠다. # 행번호 폭 1칸, 구분자 콜론(:) cat my_file.txt | nl -w 1 -s ":" 1:abc 2:def ... 9:abc 10:def ... 출력 행수가 많아서 행번호 자리수가 -w에서 지정한 폭을 넘어갈 경우에는 당연히
[bash: awk] awk에서 필드 구분자를 지정할 때 "escape sequence" 관련 경고 메시지 발생
awk에서 -F 옵션을 이용해서 필드 구분자(field separator)를 지정할 수 있다. 일단 관련 내용은 이전 게시물을 참고하자. [bash: awk] 특정 위치(field)에 대한 문자열 검색 [bash: awk] 여러 종류의 단어 구분자를 지정해서 단어 선택하기 알파벳이나 수자 등을 필드 구분자로 사용할 때는 크게 문제가 없는데, 만약 특수문자(|, ] 등)가 구분자에 포함되어 있을 경우에는 문제가 좀 달라질 수 있다. 아래의 예시를 보자. # example.txt 파일 내용 확인 cat example.txt john||123-456 jane||111-222 # example.txt에서 두번째 필드 출력(오동작) awk -F '||' '{ print $2 }' e
[bash: awk] 2개의 파일에 있는 자료 종합하기
제목이 약간 애매하긴 한데, 같은 항목에 대한 서로 다른 정보를 지닌 2개의 파일을 종합하여 하나의 파일로 만드는 문제를 awk를 이용하여 해결하는 방법이다. 일단 예시를 하나 생각해 보자. data1.txt, data2.txt 이렇게 2개의 파일이 있다고 가정하자. 먼저 data1.txt 파일에는 사원번호, 이름, 사무실번호가 저장되어 있다. # data1.txt 내용 확인 cat data1.txt id_number name office 2341 john 101 3354 jane 102 3559 harry 201 두번째로 data2.txt 파일에는 사원번호와 전화번호가 저장되어 있다. # data2.txt 내용 확인 cat data2.txt id_number phone
[bash: awk] 특정 위치(field)에 대한 정규표현식 문자열 검색
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
![[웹툰단행본] 『통제구역관리부』 1권 후기 : 이상한 변칙과 기이한 일들이 일어나는 공간에 대하여](https://img.zoomtrend.com/2026/06/09/1780996474-SE-5eda86fa-0d63-4afd-b8dd-b801879fed52.jpg)


![[CV] [Comi] 'あかね噺'(아카네 이야기) 22권. 아카네의 첫 전력 승부](https://img.zoomtrend.com/2026/06/08/1780982081-EC9D8CEC9585EC9D98EBA6ACEB93ACEC9CBCEBA19C.jpg)