LINUX

포스트: 487|아이템:LINUX(477)
Tags

Posts

487 posts

[bash: grep] 바이너리 파일에서 문자열 검색하기

반달가면|2017년 4월 24일

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 옵션을 붙여도 별 문제 없이 검색이 잘 되므로, 텍스트 파일인지 바이너리 파일인지 잘 모르겠는 상황에서는

tensorflow 실행시 sse3, sse4.1, sse4.2, avx, avx2, fma warning 관련

Kandalama01|2017년 4월 23일

글에 앞서, 서버 환경은 다음과 같다. - Ubuntu server 16.04- Python 2.7- Tensorflow 1.0.1- GTX Titan X Tensorflow 실행시 다음과 같은 warning 이 뜰 수 있다. The TensorFlow library was compiled to use SSE4.1 instructions, but these aren't available on your machine 내 경우에는 SSE4.1 뿐만 아니라, SSE4.2, SSE3, AVX, AVX2, FMA 등에 대해서 위와 같은 Warning이 발생하였다. 사실 이러한 warning은 말 그대로 warning이기 때문에, tensorflow의 구동이 안 된다던가 하는 문제를 일으키지는 않는다.

[bash: awk] 특정 위치(field)에 대한 정규표현식 문자열 검색

반달가면|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: strings] 바이너리 파일에서 문자열만 골라 출력하기

반달가면|2017년 4월 6일

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