[英]Tail only the output of a command
我只是想運行gvm-setup
來配置 OpenVAS。 由於安裝是 100% 無人值守的,並且不需要任何用戶輸入,我只是想將最后兩行添加到文件中。
如果我運行以下命令:
gvm-setup | tee ~/.openvas_install.txt
然后它按預期將整個 output 發送到文件。 這個文件有 12MB 大,我只需要它的最后 2 行來捕獲在配置過程結束時呈現給用戶的密碼。
我怎么能 go 關於這個? 我意識到我可以簡單地tail
12MB 的大文件作為替代方案,但我想知道是否有這樣的東西可以工作:
gvm-setup | tail -n 2 output_file.txt
以下是 output 的示例:
[*] Checking Default scanner
08b69003-5fc2-4037-a479-93b440211c73 OpenVAS /var/run/ospd/ospd.sock 0 OpenVAS Default
[+] Done
[*] Please note the password for the admin user
[*] User created with password 'd6ae47e5-26d0-4a85-a0ce-99b9cb3fd09d'.
我只需要捕獲隨機生成的密碼。
如果您需要日志文件和尾部 output 那么您應該使用 2 個單獨的命令行
gvm-setup >~/.openvas_install.txt
tail -n 2 ~/.openvas_install.txt
因為當將文件傳遞給tail
時,它知道它可以獲取文件大小並立即查找文件末尾。 如果您將 pipe output tail
,那么它必須在接收到 pipe 的末尾之前實際消耗大量數據並打印出數據
當然tee
也有效,因為它將 output 保存到文件和 pipe 中的下一個命令,但效率會低得多
gvm-setup | tee ~/.openvas_install.txt | tail -n 2
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.