awk возвращает ошибку "Указан неверный путь" в окнах команд - PullRequest
0 голосов
/ 15 ноября 2018

Я пытаюсь это awk oneliner из здесь в cmder-Windows10:

awk '/> \\box.=/,/^$/{print}'

, чтобы проверить файл журнала.но я получаю эту ошибку:

Указанный путь недопустим.

Я знаю основы регулярных выражений, но не могу понять, для чего предназначена вышеуказанная командаделать.Буду признателен, если вы поможете мне с:

  • разработать вышеупомянутую команду и что она должна вернуть?Если я понимаю, что, может быть, я смогу повторить это с какой-то собственной командой Windows за пределами cmder.вероятно, используя findstr?
  • почему я получаю эту ошибку?и если / как я могу отредактировать команду для решения проблемы?

PS благодаря этому сообщению Мне удалось выполнить команду awk '/box.=/,/^\r\n/' fooи он работает без каких-либо ошибок, возвращая то, что ожидается вернуть.но я до сих пор не знаю, почему оригинальная команда возвращает эту ошибку.

1 Ответ

0 голосов
/ 15 ноября 2018

Демонстрация того, что делает ваша команда:

$ cat foo
nope
> \box.=
this
and this

nope

Ваш скрипт выполнен:

$ awk '/> \\box.=/,/^$/' foo
> \box.=
this
and this
            # this is the empty line

Если вы запускаете его в Windows, /^$/ может не работать, так как Windows использует \r\nпереводы строк.Вместо этого попробуйте:

$ awk -v RS="\r\n" '/> \\box.=/,/^$/'` file
...