Сед для окон

17225
TheSavo

Я пытаюсь использовать САС в первый раз. Чтобы усложнить дело, я использую его в Windows. Я скачал из этого источника . Поскольку у меня нет прав на установку на моей рабочей машине, я создал папку в своем профиле для исполняемых файлов и добавил ее в свою PATH.

У меня проблемы, попробуйте использовать SED в первый раз. Он продолжает сбой с ошибкой:

sed: -e expression #1, char 1: unknown command:`` '' `Я пробовал несколько разных примеров из этого, как, но я просто не могу получить его. Я обнаружил, что никто другой не имеет этой проблемы. Что я должен попробовать? Я попытался заключить его в кавычки, двойные кавычки и обратные кавычки. Кажется, ничто не поможет.

3
Что именно ты бежишь? johnny 12 лет назад 0
Я очень рекомендую Cygwin, Windows-оболочка является такой PITA для Unix-подобных команд. Однако, если вы планируете придерживаться оболочки Windows, самый простой способ запустить sed или awk - создать файл сценария и затем вызвать файл с флагом -f. Например, `sed -f some_sed_script.sed` или` awk -f some_awk_script.awk` SiegeX 12 лет назад 0
Можете ли вы вставить именно то, что вы даете в оболочку Windows? Rob 12 лет назад 0
Я думал, что я включил свой вклад. Я бы хотел, потому что теперь это работает после того, как я попробовал @RedGrittyBrick дал TheSavo 12 лет назад 0

2 ответа на вопрос

5
grawity

В отличие от Unix, оболочка командной строки Windows не выполняет деление слов и не удаляет кавычки; программа просто получает одну строку, содержащую всю командную строку. Это означает, что не все программы могут следовать одинаковым правилам цитирования.

В этом случае версия sed для GnuWin32 поддерживает только один стиль цитирования - "двойные кавычки ". Например, в моих тестах отлично работает следующее:

sed "s/foo/bar/" 

Вы также можете получить sedот Cygwin, наряду с более полной Unix-подобной системой: оболочки, редакторы, другие инструменты. Будет проще, если вы будете использовать оболочку Unix для обучения, чтобы избежать подобных проблем с синтаксисом в будущем.

превзойти мой комментарий Cygwin за секунды ... :) Rich Homolka 12 лет назад 0
Благодарю. _CygWin_ предлагает не устанавливать? Я пытался с двойными кавычками и все еще не испытывал радости. TheSavo 12 лет назад 0
@ TheSavo просто удалите каталог. Есть некоторые записи реестра, связанные с монтированием Cygwin, но их можно безопасно игнорировать, только Cygwin читает их Rich Homolka 12 лет назад 0
4
RedGrittyBrick
C:\>sed sdf sed: -e expression #1, char 3: Unterminated `s' command  C:\>echo aaa > f C:\>sed -e "s/a/x/" < f xaa 

Это использует sedот unxutils

Это сработало! благодарю вас. Это потому, что параметр `-e`? TheSavo 12 лет назад 0
Не уверен, что было не так, удалив параметр `-e` и двойные кавычки `'`, он все еще работает TheSavo 12 лет назад 0