неожиданный EOF при поиске соответствия `" ' - PullRequest
5 голосов
/ 14 сентября 2011

Я пишу скрипт, который имеет команду для выполнения, как показано ниже:

cat /abc | grep -v ^# | grep -i root  | sed -e '\''s/"//g'\'' | awk '\''{print $2}'\''

При запуске скрипта в SunOS я получаю сообщение об ошибке ниже:

test: line 1: unexpected EOF while looking for matching `"'
test: line 3: syntax error: unexpected end of file

Пробовал с разнымивариант ... но не повезло.

Нужно, чтобы кто-нибудь помог мне определить, чего не хватает в приведенной выше команде.

Ответы [ 2 ]

2 голосов
/ 14 сентября 2011

что это за побеги?!

cat /abc | grep -v '^#' | grep -i root | sed -e '\''s/"//g'\'' | awk '\''{print $2}'\''
                                                 ^         ^          ^             ^

Ваша проблема там:

sed -e '\''s/"//g'\''
             ^ unmatched
0 голосов
/ 14 сентября 2011

Цитирование все неправильно.Почему вы используете одинарную кавычку, обратную косую черту, одинарную кавычку, одинарную кавычку и всегда в таком порядке?В любом случае, у вас есть двойная кавычка без кавычек, поэтому оболочка ожидает, что вы добавите закрывающую кавычку для строки в кавычках, которая начинается с этой открывающей двойной кавычки.* Бесполезное использование Cat , и подумайте, как упростить ваш скрипт.По крайней мере:

grep -v ^# /abc | grep -i root | sed -e 's/"//g' | awk '{print $2}'

... но на практике

awk '/^#/ { next } /[Rr][Oo][Oo][Tt]/ { gsub ("\"",""); print $2 }' /abc

Поскольку некоторые символы в сценариях awk и sed имеют особое значение для оболочки,мы помещаем их в одинарные кавычки.Если вам нужно, чтобы в скрипте были одинарные кавычки, вам нужно их заключить в двойные кавычки;часто встречается строка в одинарных кавычках, смежная со строкой в ​​двойных кавычках, например: echo '"'"'".За этим эхом " (в одинарных кавычках) сразу же следует ' (в двойных кавычках).

Редактировать Обновлен анализ проблемы цитирования;добавлен пример кода;пример исправленного кода.Окончательное редактирование исправляет цитирование gsub в скрипте awk и добавляет небольшое обсуждение цитирования.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...