GREP для ряда чисел в скобках

Существует общая опция монтирования для нескольких файловых систем (включая ext2/3/4, fat, jfs) errors=remount-ro. Это говорит ядру, что если при доступе к файловой системе возникнут любые ошибки чтения или записи, то фс будет перемонтирована как доступная только для чтения.

Для некоторых файловых систем (fat) по умолчанию используется errors=remount-ro. Для ext2/3/4 значение по умолчанию задается tune2fs.

Намерение состоит в том, чтобы спасти fs от возможности дальнейшей записи на него повреждений.

Подробности см. в man mount и/или на странице man для используемой файловой системы.

4
06.03.2018, 19:59
3 ответа

Esto parece funcionar:

grep -Eo '[0-9]{4}' /path/to/file | grep -v '0000'

Menos legible, pero con una solagrep:

grep -Eo '[0-9]{3}[1-9]|[0-9]{2}[1-9][0-9]|[0-9][1-9][0-9]{2}|[1-9][0-9]{3}' /path/to/file
3
27.01.2020, 20:46

Dos enfoques para llegar a la meta:

grepenfoque (con soporte de Perl ):

grep -Po '\(\K(?!0000)([0-9]{4})(?=\))' /tmp/output

enfoque GNUawk:

awk -v FPAT='\\([0-9]{4}\\)' '$1{ n = substr($1,2,4); if (int(n) > 0) print n }' /tmp/output

La salida:

0001
9999
8
27.01.2020, 20:46

Aparentemente tiene restricciones numéricas. Si este es el caso, ¿por qué no usar un lenguaje de programación? Ejemplo:

perl -nE '/\((\d{4})\)/ and $1 > 0 and say $1'
3
27.01.2020, 20:46

Теги

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