Греп – ^ (\ s * $) vs ^ \ s * $

Я хочу найти поле, в котором есть только пробелы. Считая, что эти две команды дали мне разные результаты:

grep "^\s*$" -E -c grep "^(\s*$)" -E -c 

Еще одна вещь. Каков правильный способ сказать «пространства только или что-то другое»:

  • Как просмотреть файлы и каталоги точки монтирования
  • `/ proc / $ PID / cwd`: есть ли эквивалент POSIX?
  • Фильтрация многострочных строк из журнала
  • что не так с встраиванием php-скриптов внутри bash?
  • Уменьшение числа с помощью sed
  • Использование регулярного выражения для получения MAC-адреса мыши
  •  grep "^(\s*$|STRING)" -E -c 

    или

     grep "(^\s*$|^STRING)" -E -c 

    Или они эквивалентны?

  • Сценарий с ошибкой «команда не найдена: ^ M»
  • Как переименовать файлы, обменивая подстроки в именах файлов?
  • Неверная корневая оболочка в файле / etc / passwd
  • это поведение. * включить. и .. определено в LSB или POSIX или какой-либо другой спецификации?
  • Команда Grep для поиска файлов, содержащих текстовую строку, и перемещения их
  • условная окраска в grep
  • One Solution collect form web for “Греп – ^ (\ s * $) vs ^ \ s * $”

    Обычный grep не понимает \s или круглые скобки. (*) Вы хотите, чтобы grep -P доступен, или grep -E / egrep и write \s out как [ ^I] (где ^ITab , grep без -P doesn Не понимаю. Кроме того, с двойными кавычками некоторые оболочки будут обрабатывать \s и оставлять только s ; вы всегда должны использовать одинарные кавычки с регулярными выражениями из оболочки, за исключением случаев, когда вам действительно нужно интерполировать переменную (например, что-то вроде '^\s*'"$foo"'\s+\(' , переключение цитирования в среднем параметре) ,

    Альтернативы в вашем втором примере (опять же, с -P и одинарным цитированием вместо double) делают то же самое. Первое технически лучше, потому что grep не будет отступать так же сильно, но практически это не имеет значения.

    (*) педантизм: спин-шрамы-парсеры будут работать, снова требуя одинарного цитирования, чтобы оболочка не ест обратную косую черту. egrep обычно проще.

    Linux и Unix - лучшая ОС в мире.