[SadServers] 解説 "Santiago": Find the secret combination
"Santiago": Find the secret combination
SadServersの "Santiago": Find the secret combination の解説です。
SadServers って何? って人は、 SadServers解説 を見てください。
一言でいうと、LeetCode (コーディング問題集) の Linuxサーバ設定版のようなものです。
問題
Scenario: "Santiago": Find the secret combination
Level: Easy
Description: Alice the spy has hidden a secret number combination, find it using these instructions:
アリスが隠した秘密の数字の組み合わせは、以下の手順で見つけてください。
- Find the number of lines where the string Alice occurs in *.txt files in the /home/admin directory
/home/adminディレクトリの*.txtファイルで、Aliceという文字列が出現する行数を探す
- There's a file where "Alice" appears exactly once. In the line after that ocurrence there's a number.
あるファイルに "Alice "が一度だけ登場します。その一回の後の行に数字があります。
Write both numbers consecutively as one (no new line or spaces) to the solution file (eg if the first number from 1) is 11 and the second 22, you can do echo -n 11 > /home/admin/solution; echo 22 >> /home/admin/solution
).
解答ファイルに両方の数字を1つずつ(改行やスペースを入れずに)連続して書きます(例えば、1)からの数字が11で2)が22の場合、 echo -n 11 > /home/admin/solution; echo 22 >> /home/admin/solution とします)。
Test: Running md5sum /home/admin/solution
returns d80e026d18a57b56bddf1d99a8a491f9
(just a way to verify the solution without giving it away.)
Time to Solve: 15 minutes.
OS: Debian 11
解説
まず、 /home/admin
に移動して、*.txt ファイルを確認する。
admin@ip-172-31-37-223:/$ cd /home/admin/
admin@ip-172-31-37-223:~$ ls *.txt
11-0.txt 1342-0.txt 1661-0.txt 84-0.txt
*.txt
ファイルは4つある。4つなので、1ファイルずつgrep
してもいいのだが、 xargs
でまとめて実行する。
grep
の-c
オプションはマッチしたカウントを表示する。
admin@ip-172-31-37-223:~$ ls *.txt | xargs grep -c Alice
11-0.txt:398
1342-0.txt:1
1661-0.txt:12
84-0.txt:0
Alice
の出現数の合計は 398 + 1 + 12 + 0 = 411
。 これが 1) の解答。
次に、出現回数が1回である 1342-0.txt
を less で表示して、 /
+ Alice
で、 Alice
の行まで移動する。
# less 起動後、 / Alice "Enter" を実行。
admin@ip-172-31-37-223:~$ less 1342-0.txt
Alice
156 CHARING CROSS ROAD
LONDON
Alice
の次の行に156
という数字を確認。これが2)の解答。
1)の解答411
と 2)の解答156
を使って /home/admin/solution
を作成する。
admin@ip-172-31-37-223:~$ echo -n 411 > /home/admin/solution; echo 156 >> /home/admin/solution
最後に md5を確認する。
admin@ip-172-31-37-223:~$ md5sum /home/admin/solution
d80e026d18a57b56bddf1d99a8a491f9 /home/admin/solution
Discussion