извлечь имя файла, начинающееся с первого подчеркивания и заканчивающееся первым дефисом

Ни одна из опубликованных вами ошибок ничего не говорит о проблемах с дисковым пространством, нет необходимости стирать какие-либо файлы. /devи /runне являются вашей корневой файловой системой.

Ваши выходные данные из df -Pпоказывают, что эти средства передвижения используют 0% своей общей емкости и не используют ни одного блока, не занимая вообще никакого места.

В вашем сообщении действительно говорится, что у вас есть ошибки диска, которые необходимо проверить с помощью руководства fsckвашей файловой системы. Где-то доступна команда fsck, это программа, которая выводит ошибку, которую вы опубликовали, поэтому она должна быть установлена. Больше похоже на то, что ваша машина не загружается из-за ошибок диска, и вы застряли в ограниченной загрузочной среде до -.

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

Если вы можете успешно запустить fsckи исправить ошибки, вы сможете снова загрузиться с этого диска.

0
17.05.2020, 09:01
1 ответ

man grep говорит

  grep searches for PATTERNS in each FILE.  PATTERNS is one or patterns separated by newline characters, and grep prints each line that matches a pattern.

 -o, --only-matching
              Print  only  the  matched  (non-empty) parts of a matching line,
              with each such part on a separate output line.

 -P, --perl-regexp
              Interpret   PATTERNS   as  Perl-compatible  regular  expressions
              (PCREs).  This option is experimental when combined with the  -z
              (--null-data)  option,  and  grep  -P  may warn of unimplemented features.

На lsу меня было

'2180_PP AAA Radius Statistic-42005_04May2020_0900-04May2020_1000.csv'
'2180_SW Interface  Flow(3GPP AAA)-53448_14May2020_0000-14May2020_0100.csv'

После запуска приведенного ниже кода я получил

ls | grep -oP '(?<=_).*(?=\-\d\d\d)'
PP AAA Radius Statistic
SW Interface  Flow(3GPP AAA)

Пояснение кREGEX

(?<= - Stands for a positive look-behind and will not include the words before it

.    - Matches any characters except line break

(?=  - Stands for positive look-ahead. Matches a group 
       after the main result without including it in the result.

\-   - Matched character -

\d   - Matched digit

Источником объяснения REGEX является REGEXR

Почему, возможно, вы получили другой результат?

Было ли другое совпадение -во вводе (-14May ). Поэтому я использовал \-\d\d\d, чтобы противодействовать этому.

1
28.04.2021, 23:13

Теги

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