2016-10-11 7 views
0

Я пытаюсь найти файл на удаленном сервере.
Образец, который я ищу, это ] LEADER, например. [T2] LEADER совпадений.
Моя команда: ssh [email protected] grep -r "] LEADER" logfile

Сообщается, что погрешность grep : LEADER: no such file.
Могу ли я узнать, как это решить?grep remote machine with] character

ответ

3

Оболочка aborbs двойные кавычки, так что "Grep" на удаленном компьютере видит три аргумента - "]", "ЛИДЕР" и "LOGFILE"

Изменить на: SSH MyName @ IP Grep -r "\"] ЛИДЕР \ "" файл_журнала

1

Вы можете попробовать:

ssh [email protected] 'grep -r "] LEADER" logfile' 

Он должен избежать пробелов.

2

Используйте одинарные кавычки вокруг команды, чтобы предотвратить команду от интерпретации заранее локальной оболочкой:

ssh [email protected] 'grep -r "] LEADER" logfile' 
0

SSH связывает свои аргументы вместе (плохо) для создания оболочки командной строки. Так что вы хотите процитировать эту команду:

ssh [email protected] 'grep -r "\] LEADER" logfile' 

Если у вас возникли проблемы, то стоит использовать ssh -v, чтобы показать, что это переход к удаленной оболочке.