У меня есть файл, который я хочу Grep из строк с строками, как "Nov 30"
или "Nov 30"
(в основном я не хочу, чтобы указать количество пробелов в середине.Использование подстановочных и кавычки в SSH
В терминал это будет хорошо, я бы просто сделать:
grep 'Nov * 30' file
Однако, было бы неплохо, чтобы сохранить его вообще для моих целей, поэтому на самом деле я хотел бы сделать что-то вроде:
grep "$(date +%b) * $(date +%d)" file
Это работает отлично, но я на самом деле хочу, чтобы сделать это через SSH, так что бы как
ssh -t host "grep "$(date +%b) * $(date +%d)" file"
В этот момент я бегу в проблемы. Вместо grepping только для строк даты 30 ноября, он возвращает всевозможные разные ноябрьские даты. Я чувствую, что проблема связана с использованием двойных кавычек (возможно, первый набор двойных кавычек для аргумента -t влияет на второй лот, но я не вижу, как обойти это), и я вижу от this ответьте, что «bash будет оценивать и заменять переменные внутри двойных кавычек на локальном компьютере, но будет делать это на целевой машине внутри одинарных кавычек». Поэтому я попытался заменить вышеперечисленное
ssh -t host "grep '$(date +%b) * $(date +%d)' file"
Но теперь grep не возвращает результатов вообще! Я предполагаю, что это потому, что я готовлю буквально «$ (date +% b) ...», а не «Nov ...», но тогда я не понимаю, почему первая попытка с двойными кавычками не Работа.
Добро пожаловать помощь
http://mywiki.wooledge.org/BashFAQ/050 –