напечатать строки с определенным количеством определенных символов

Вы можете использовать prename, которое часто распространяется вместе с Perl. (Например, в Debian / usr / bin / prename устанавливается пакетом perl .) Если не упакован вашим дистрибутивом (ищите prename и переименовать в местах обычных двоичных файлов), он доступен для загрузки из ряда мест, например, здесь , здесь или здесь .

Этот сценарий принимает регулярное выражение, применяемое к каждому из имен файлов, и набор имен файлов, и изменяет имена этих файлов в соответствии с этим регулярным выражением.

Например, вы можете ввести

prename -v -n 's/^.{5}//' *

, чтобы показать, что произойдет, если вы удалите первые пять символов в именах файлов. Чтобы выполнить переименование, просто удалите -n .

0
11.04.2018, 20:59
1 ответ

С расширенным регулярным выражением:

grep -E '^([^/]*/[^/]*){1,2}$' input

что приводит к этим совпадениям:

/a/b
/a
/b/c
/b
/c/d
/c

Синтаксис регулярного выражения гласит:

  • ^-привязка к началу строки
  • (... )-сгруппировать следующие биты вместе
  • [^/]*-любой не -прямой -символ косой черты, ноль или более из них
  • /-косая черта -
  • [^/]*-любой не -прямой -символ косой черты, ноль или более из них
  • {1,2}-одна или две из этих групп
  • $-прикреплен к концу линии
2
28.01.2020, 02:14

Теги

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