grep, давая ошибку - PullRequest
       5

grep, давая ошибку

0 голосов
/ 16 февраля 2011

Я пытаюсь извлечь no.s из файла, поэтому я создал скрипт, но grep выдает ошибку: grep: слишком длинная строка. Может кто-нибудь сказать мне, где я не прав. команда:

echo $(cat filename|grep '\<[0-9]*\>')

Заранее спасибо

1 Ответ

4 голосов
/ 16 февраля 2011

grep ориентирован на линию; он выведет соответствующие строки для вывода. Возможно, в вашем файле есть огромная строка, и результирующая строка не может быть преобразована в строковое значение с помощью оболочки, так как $( ... ) требует.

Прежде всего, попробуйте просто cat filename | grep '\<[0-9]*\>' > results и посмотрите, что находится в файле results. Может быть, этого достаточно.

Но если у вас есть несколько чисел в строке, и вы хотите извлечь их все, используйте -o: grep -o '\<[0-9]*\>'. Это будет печатать только совпадающие части, каждое совпадение на новой строке, даже если оригинальные совпадения находятся на той же строке. Если вам нужны также номера строк, добавьте -n.

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