Unix:Grep on console output

时间:2011-08-23 18:57:25

标签: unix console grep

这是我关于stackoverflow的第一个问题! 我想要一个unix脚本,它将在控制台输出上运行grep。这是我的脚本所做的: 1.远程登录到远程服务器(我已成功完成此部分) 2.成功登录后,远程服务器在控制台上显示输出信息。我需要在控制台输出上运行grep(需要帮助)

所以,我需要一个脚本来在控制台上出现的输出上运行grep。

有什么想法吗?

谢谢, 普尼特

4 个答案:

答案 0 :(得分:3)

使用SSH代替。它更安全,更容易编写脚本。

ssh remoteusername@remotehost:/path/to/remote/script | grep 'something'

通过适当的密钥设置,它甚至不会提示您输入密码。

答案 1 :(得分:1)

您是否尝试过I / O重定向?你可以做

$ your-command > output.txt

然后在该文件上运行grep,或者直接通过grep直接管道输出

$ your-command | grep ...

请参阅this article或谷歌搜索相似内容。网上有大量关于此的好文章。

答案 2 :(得分:1)

我建议使用netcat(nc)而不是telnet。然后,您可以通过标准输入传递登录凭据并grep标准输出(nc打印服务器在标准输出上发送的任何内容)。

nc <host> <port> <auth.txt | grep 'string'

答案 3 :(得分:0)

你想要做的可能是使用烟斗。您可以在上面的答案中看到它,它是您在命令中看到的|符号。根据布局,可能很难在键盘上找到它。 (我不得不承认它并不经常使用)。

管道将重定向一个命令的输出。他们将其作为另一个命令的输入发送,而不是将其发送到控制台。

cmd1 | grep foo相当于在grep foo的输出上运行cmd1(您可以使用netstat命令替换cmd1)。

最后一件事是你可以拥有任意数量的管道。例如,在我的机器上,我可以运行ls -ltr | tail -1 | awk '{print $9}' | grep foo在最后修改的文件中查找单词foo