这是我关于stackoverflow的第一个问题! 我想要一个unix脚本,它将在控制台输出上运行grep。这是我的脚本所做的: 1.远程登录到远程服务器(我已成功完成此部分) 2.成功登录后,远程服务器在控制台上显示输出信息。我需要在控制台输出上运行grep(需要帮助)
所以,我需要一个脚本来在控制台上出现的输出上运行grep。
有什么想法吗?
谢谢, 普尼特
答案 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
。