문제
The password for the next level is stored in the file data.txt next to the word millionth.
풀이
data.txt 파일에 millionth라는 단어에 비밀번호가 숨겨져 있다!
- 파일에 millionth라는 단어를 검색해보자!
이 문제는 생각보다 단순하게 접근할 수 있다고 생각했다.
특정 단어만 파일에서 찾으면 되어서 두가지로 접근해보려한다.
리눅스 vi 단어 찾기
리눅스의 vi 에디터에서는 특정 단어를 찾는 기능이 있다.
바로 명령모드에서 /[단어] 를 이용한 검색법이다.
이 단어를 사용한 예시는 아래 글에서 담고 있으니 필요하면 보도록 하자!
한 번 적용해보면 vi data.txt를 들어간 후, 명령모드에서 아래처럼 쓴 다음에 엔터를 누르면 우리가 원하는 데이터가 사진처럼 나타날 것이다! 만약 여러 데이터가 있어서 다음으로 넘어가고 싶다면 영어 'n' 을 눌러 다음 단어로 넘어갈 수 있고, shift + n 을 누르면 이전 단어로 갈 수 있다! (참고하여 다음에 사용하자!)
vi data.txt
> 명령모드
/millionth
생각보다 쉽게 데이터를 찾았다!
리눅스 grep 단어 찾기
이번엔 grep으로 굳이 파일을 다 열어보지않고 한번에 찾는 방법을 알아보자! (선호!!)
간단하게 리눅스 grep의 사용법을 알아보고 문제를 풀어보도록 하자.
grep [옵션][패턴][파일명]
grep 옵션 종류
- -c : 일치하는 행의 수를 출력한다.
- -i : 대소문자를 구별하지 않는다.
- -n : 포함된 행의 번호를 함께 출력한다.
- -l : 패턴이 포함된 파일의 이름을 출력한다.
- -r : 하위 디렉토리를 포함한 모든 파일에서 검색한다.
이제 문제를 풀기위해 우리는 리다이렉션을 사용하고, cat으로 파일을 읽어 millionth를 찾아보려한다!
아래의 grep을 사용 시에 파일명은 왜 없어요? 라고 할 수 있지만 파일명 자리에 앞의 cat의 출력값이 들어가는게 바로 리다이렉션이다!
cat data.txt | grep millionth
짠! 더 깔끔하게 나오는 것을 확인할 수 있다.
grep 뒤에 단어를 사용하여 특정 단어가 속한 라인만을 가져올 수 있음을 알아놓으면 좋다!
그러면 이제 다음 단계로 넘어가보자!
더보기를 눌러 비밀번호를 확인하세요!
비밀번호는 다음과 같다
TESKZC0XvTetK0S9xNwm25STk5iWrBvP
'Bandit' 카테고리의 다른 글
Bandit Level 9 -> Level 10 -> level 11 | 리눅스 문자만 추출 strings, base64 인코딩 (0) | 2023.08.31 |
---|---|
Bandit Level 8 -> Level 9 | 리눅스 중복 단어 제거 sort, uniq (0) | 2023.08.30 |
Bandit Level 6 -> Level 7 - 리눅스 특정 파일명 검색 (0) | 2023.08.28 |
Bandit Level 5 -> Level 6 - 리눅스 하위 폴더 파일 찾기 (0) | 2023.08.28 |
Bandit Level 4 -> Level 5 - 리눅스 파일 정보 명령어 'file' (0) | 2023.08.28 |