BASH
Posts
81 posts[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: grep] 바이너리 파일에서 문자열 검색하기
grep 명령을 이용한 문자열 검색을 바이너리 파일에 적용할 경우, 별도의 옵션을 주지 않으면 해당 문자열 존재 여부만 알 수 있다. # my_data.bin 파일에 문자열 ABC가 존재하는지 확인 grep "ABC" my_data.bin Binary file my_data.bin matches 일치하는 문자열이 있을 때 해당 문자열을 화면에 표시하고 싶다면 -a 옵션을 추가해 주면 된다. # my_data.bin 파일에서 문자열 ABC를 검색, 있을 경우 화면에 출력 grep -a "ABCD" my_data.bin ABCDEFG 텍스트 파일에 대해 문자열 검색을 할 때 -a 옵션을 붙여도 별 문제 없이 검색이 잘 되므로, 텍스트 파일인지 바이너리 파일인지 잘 모르겠는 상황에서는
[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
[bash: strings] 바이너리 파일에서 문자열만 골라 출력하기
strings는 바이너리 파일에 포함되어 있는 문자열만 골라 화면에 출력해 주는 기능을 제공한다. 별도의 옵션을 지정하지 않을 경우 4바이트 이상의 문자열이 존재할 경우 화면에 출력해 준다. 아래의 예시를 보자. # my_data.bin 파일에 포함된 문자열 출력 strings my_data.bin 화면에 출력할 문자열의 최소 길이는 기본값이 4이나, -n 옵션을 이용해서 사용자가 직접 지정해 줄 수도 있다. # my_data.bin 파일에 포함된 길이 8바이트 이상의 문자열 출력 strings -n 8 my_data.bin 만약 출력 결과에 파일명을 같이 표시해 주고 싶다면 -f 옵션을 이용한다. # 파일명을 함께 출력(-f) strings -f my_data.bin my



![[Spoiler] '우주 형제' 완결. 매거진 신작 '천선 전기'.](https://img.zoomtrend.com/2026/06/10/1781142015-ECBD98ED8AB8EBA1A4EB9FACEBA5BCEB93A0EC9E90.jpg)