안녕하세요. 이번 시간에는 리눅스 find 명령어에서 -exec 옵션을 알아보겠습니다. 요약해서 말하자면, sql 파일들이 여러 개가 있을 때, 이 명령어를 잘 이용하면 여러 개의 sql file을 한 번에 적용시켜버릴 수 있습니다. 먼저, find는 디렉토리에서 파일들을 찾기 위한 명령어입니다. 옵션이 매우 많지만, 실습을 위해서 필요한 몇 개만 추릴게요. -iname은 패턴에 매치되는 것을 찾습니다. case insensitive라는 것은 대소문자 구분이 없는 것을 의미합니다. 다음에 -exec command {}입니다. -exec는, 실행을 시키는 옵션입니다. 여기서 string {}이 현재 처리중?인 파일로 대치된다는 말이 있습니다. 이게 무슨 소리인가? find -maxdepth 1 -iname..
FIND 검색 결과
리눅스에서 파일 줄 수를 셀 때 wc 명령어를 이용하면 됩니다. 예를 들어 파일 1의 줄 수를 세기 위해서는 cat 1 | wc -l을 입력하시면 됩니다. 이는 1의 내용을 출력한 결과를 piping 해서 wc -l에 넘기는데요. "abc\ndef"가 저장이 되어 있었다면, "abc\ndef"가 wc -l의 입력으로 넘어가게 됩니다. 당연하게도, 2개의 줄이 있으니, 2가 출력됩니다. 윈도우 cmd에서는 조금 복잡한데요. 간단하게 알아봅시다. 제 문서. 즉 C:\Users\chokw에 있는 1.txt에 있는 특수 문자들을 보도록 하겠습니다. notepad++을 쓰고 있다면, 보기에서 기호 보기에서 특수 문자 표시에 체크해 줍니다. 그러면, CR LF가 뜨게 되는데요. 캐리지 리턴인 \r와 개행 문자인 \..
c++에서 string을 처리할 때, 구분자가 여러 개 붙어 있는 경우 split를 어떻게 할까요? c의 string.h에서는 strtok으로 된다고 하는데. 한 가지 방법 중 하나는, 문자열을 순회하면서, 해당 문자가 구분자인지 검사하는 것입니다. 제 목표는 token_ret 메서드를 구현하는 것입니다. 2번째 인자는 delimiter들을 넘깁니다. 쉽게 말해 구분자인데요. :과 -와 공백을 넘겼습니다. 이들을 기준으로 split 하겠다는 의미입니다. 실행 결과는 위와 같이 나와야 해요. 인풋이 이렇다고 해 봅시다. 양 끝단 처리가 어려울 듯 하니, 더미 2개를 넣읍시다. 하나는 문자열 시작 위치 바로 전인 -1, 다른 하나는 문자열의 끝인 size of string length를 넣을 겁니다. 이 둘..
특정 폴더의 하위 폴더에 있는 확장자가 .log인 파일을 모두 찾고 싶어졌습니다. 어떻게 하면 될까요? 저는, 제일 쉬운 방법 중 하나인 grep 으로 하는 방법을 소개하고자 합니다. 물론, 이것 말고도 다른 방법도 있습니다만, 저는 grep을 자주 쓰는 사람이니, 이것을 기준으로 설명해 보도록 하겠습니다. ls는 디렉토리 내에 있는 내용들을 출력해 주는 명령어입니다. 제가 이것을 쓸 때 습관적으로 쓰는 옵션은 -ail 입니다. man 페이지를 쭉 보시다 보면, 왠지 익숙한 명령어가 보입니다. -R이 보입니다. 이것은, 서브 디렉토리들을 재귀적으로 탐색한다는 의미입니다. 다음에, 이 결과물을 가지고 piping을 할 건데요. grep 명령어로 할 거에요. 이 때에는 그냥, 정규 표현식을 입력해 주시면 됩..
저는 string을 쓸 때, char *형으로 바꾸고, string.h에 있는 문자열 함수를 주로 썼습니다. 그런데, 이것도 생각보다 귀찮더라고요. 이번 시간에는 의 find 함수에 대해서 알아보도록 하겠습니다. 레퍼런스에 보면 꽤 많은 원형이 있는데, 사실 둘만 알면 크게 어렵지 않아요. size_t find(const string &s|const char *s|char ch, size_t pos = 0); 첫 번째 인자로 string을 받거나, char형 포인터, 그러니까 문자열을 받거나, 문자 하나를 받습니다. 2번째 인자로 어느 위치에서부터 찾을 건지를 명시를 하는데요. 간단하게 말하면, string으로부터, 패턴이 매치되는 최초 위치를 찾는 함수입니다. 예제 프로그램을 보겠습니다. string이..
최근댓글