這是我在stackoverflow上的第一個問題! 我想要一個將在控制檯輸出上運行grep的unix腳本。這是我的腳本所做的: 1.遠程登錄到遠程服務器(我已成功完成此部分) 2.成功登錄後,遠程服務器在控制檯上顯示輸出信息。我需要在該控制檯輸出上運行grep(需要此幫助)Unix:在控制檯輸出上的Grep
所以,我需要一個腳本來在控制檯上出現的輸出上運行grep。
任何想法??
感謝, 普尼特
這是我在stackoverflow上的第一個問題! 我想要一個將在控制檯輸出上運行grep的unix腳本。這是我的腳本所做的: 1.遠程登錄到遠程服務器(我已成功完成此部分) 2.成功登錄後,遠程服務器在控制檯上顯示輸出信息。我需要在該控制檯輸出上運行grep(需要此幫助)Unix:在控制檯輸出上的Grep
所以,我需要一個腳本來在控制檯上出現的輸出上運行grep。
任何想法??
感謝, 普尼特
你試過I/O重定向?你既可以做
$ your-command > output.txt
,然後在該文件運行grep的,或者只是直接通過管道將輸出通過grep的,像這樣
$ your-command | grep ...
見this article或谷歌周圍類似。在網絡上可能有成千上萬篇關於此的好文章。
改爲使用SSH。腳本更安全並且更容易。
ssh [email protected]:/path/to/remote/script | grep 'something'
與適當的密鑰設置,它甚至不會提示你輸入密碼。
無法使用SSH,因爲遠程服務器只支持telnet! – Puneet
而不是telnet,我會建議使用netcat(nc)。然後,您可以通過標準輸入傳遞您的登錄憑據並grep標準輸出(nc輸出標準輸出中服務器發送的任何內容)。
nc <host> <port> <auth.txt | grep 'string'
你想要做的可能是使用管道。你可以在上面的回答中看到它是你在命令中看到的|
符號。根據佈局,在您的鍵盤上定位可能會很困難。 (我不得不承認它不是經常使用)。
管道將重定向一個命令的輸出。他們不會將它發送到控制檯,而是將它作爲另一個命令的輸入發送。
cmd1 | grep foo
相當於在cmd1
的輸出上運行grep foo
(您可以使用netstat命令替換cmd1)。
最後一件事是你可以擁有任意數量的管道。例如在我的機器上,我可以運行ls -ltr | tail -1 | awk '{print $9}' | grep foo
在上一個修改的文件中查找foo
這個詞。
你現在是怎麼產生你輸出的?如果你不能在那裏插入'grep',你需要將操作存儲在某個地方,然後在其上執行'grep'。 – hari