Как включить символ пробела в grep?

Вы можете использовать команду alias.

Для получения дополнительной информации посетите сайт сайта.

Open terminal:

alias ServerStart=' cd /path/to/.Server ; java -Xmx7168M -Xms7168M -jar server.jar '

Итак, теперь, когда вы печатаете alias в терминале он выполнит две команды.

Чтобы сохранить, поэтому вы можете использовать его все время, добавив в файл ~/.bashrc следующее:

6
задан 24 August 2017 в 10:41

3 ответа

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

$ grep ' \.pdf' example
grep .pdf

Или, если может быть несколько пробелов (мы можем " t используйте *, так как это будет соответствовать случаям, когда нет предшествующих пробелов)

grep ' \+\.pdf' example

+ означает «один или несколько предыдущих символов». В BRE вам нужно сбежать с помощью \, чтобы получить эту специальную функцию, но вместо этого вы можете использовать ERE, чтобы избежать этого

grep -E ' +\.pdf' example 

. Вы также можете использовать \s в grep для обозначения space

grep '\s\+\.pdf' example

Мы должны избегать литерала ., поскольку в regex . означает любой символ, если только он не находится в символьном классе.

7
ответ дан 22 May 2018 в 19:07
  • 1
    Вы были первыми, кто заметил, что в последней строке было место. – Pilot6 24 August 2017 в 10:36
  • 2
    @ Pilot6 спасибо. Вопрос был немного путано написан :) – Zanna 24 August 2017 в 10:38
  • 3
    Должен быть какой-то значок для первого, кто понял вопрос ;-) – Pilot6 24 August 2017 в 11:11
  • 4
    @Zanna, есть ли что-то не так, чтобы пойти в любое время egrep в этом случае? egrep всегда получает преимущество ... – solfish 24 August 2017 в 15:58
  • 5
    @solfish egrep (с точки зрения стиля regex, afaik), как и grep -E, и I считают , мы должны использовать последнее - egrep и т. д., предположительно, устарели в пользу Флаги grep – Zanna 24 August 2017 в 16:37

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

$ grep ' \.pdf' example grep .pdf

Или, если может быть несколько пробелов (мы можем " t используйте *, так как это будет соответствовать случаям, когда нет предшествующих пробелов)

grep ' \+\.pdf' example

+ означает «один или несколько предыдущих символов». В BRE вам нужно сбежать с помощью \, чтобы получить эту специальную функцию, но вместо этого вы можете использовать ERE, чтобы избежать этого

grep -E ' +\.pdf' example

. Вы также можете использовать \s в grep для обозначения space

grep '\s\+\.pdf' example

Мы должны избегать литерала ., поскольку в regex . означает любой символ, если только он не находится в символьном классе.

9
ответ дан 18 July 2018 в 08:00

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

$ grep ' \.pdf' example grep .pdf

Или, если может быть несколько пробелов (мы можем " t используйте *, так как это будет соответствовать случаям, когда нет предшествующих пробелов)

grep ' \+\.pdf' example

+ означает «один или несколько предыдущих символов». В BRE вам нужно сбежать с помощью \, чтобы получить эту специальную функцию, но вместо этого вы можете использовать ERE, чтобы избежать этого

grep -E ' +\.pdf' example

. Вы также можете использовать \s в grep для обозначения space

grep '\s\+\.pdf' example

Мы должны избегать литерала ., поскольку в regex . означает любой символ, если только он не находится в символьном классе.

9
ответ дан 24 July 2018 в 18:57

Другие вопросы по тегам:

Похожие вопросы: