Получить число после ключевого слова в строке

Это зависит от используемого вами эмулятора терминала. @giradengo показал вам, что (предположительно) является значением по умолчанию для gnome-terminal. В xterm вы можете управлять этим с помощью флагов -bcf и -bcn:

   -bcf milliseconds
           set the amount of time text cursor is off when blinking via the
           cursorOffTime resource.

   -bcn milliseconds
           set the amount of time text cursor is on when blinking via  the
           cursorOffTime resource.

В общем, детали всегда будут зависеть от вашего эмулятора терминала, некоторые (например, terminator ), похоже, не поддерживают мигание в akk, а другие позволяют вам его настроить.

0
задан 6 June 2017 в 12:11

9 ответов

С grep и Perl-совместимыми регулярными выражениями (PCRE):

grep -Po 'opt3=\s*\K\d+'
Опция -o позволяет grep печатать только соответствующий текст \K в PCRE, указывает, что матч действительно начинается здесь : предыдущее выражение должно быть проверено, но не включено в соответствующий текст opt3=\s* is opt3, за которым следуют пробелы, которые не включены в соответствующий текст, поэтому выводится только число после печати.
2
ответ дан 22 May 2018 в 21:49

С grep и Perl-совместимыми регулярными выражениями (PCRE):

grep -Po 'opt3=\s*\K\d+' Опция -o позволяет grep печатать только соответствующий текст \K в PCRE, указывает, что матч действительно начинается здесь : предыдущее выражение должно быть проверено, но не включено в соответствующий текст opt3=\s* is opt3, за которым следуют пробелы, которые не включены в соответствующий текст, поэтому выводится только число после печати.
2
ответ дан 18 July 2018 в 12:05

С grep и Perl-совместимыми регулярными выражениями (PCRE):

grep -Po 'opt3=\s*\K\d+' Опция -o позволяет grep печатать только соответствующий текст \K в PCRE, указывает, что матч действительно начинается здесь : предыдущее выражение должно быть проверено, но не включено в соответствующий текст opt3=\s* is opt3, за которым следуют пробелы, которые не включены в соответствующий текст, поэтому выводится только число после печати.
2
ответ дан 24 July 2018 в 19:54

Я бы использовал команду cut, чтобы сделать то же самое:

cut -d' ' -f7 file 

Информация:

-d: разделитель (что разделяет поля)

-f7: напечатать седьмое поле

1
ответ дан 22 May 2018 в 21:49
  • 1
    Что, если это не было 7-ой поданной? : D – Ravexina 6 June 2017 в 16:52
  • 2
    Тогда будет использован другой метод: – George Udosen 6 June 2017 в 16:54

Я думаю, что вы ищете

grep -Po "(?<=opt3=\s)[0-9]+" file
(?<=opt3=\s): мы ищем «opt3 =», однако мы не будем его включать. 0-9]+ число после «opt3 =» -o показывает только совпадение
0
ответ дан 22 May 2018 в 21:49

Я бы использовал команду cut, чтобы сделать то же самое:

cut -d' ' -f7 file

Информация:

-d: разделитель (что разделяет поля)

-f7: напечатать седьмое поле

1
ответ дан 18 July 2018 в 12:05

Я думаю, что вы ищете

grep -Po "(?<=opt3=\s)[0-9]+" file (?<=opt3=\s): мы ищем «opt3 =», однако мы не будем его включать. 0-9]+ число после «opt3 =» -o показывает только совпадение
0
ответ дан 18 July 2018 в 12:05

Я бы использовал команду cut, чтобы сделать то же самое:

cut -d' ' -f7 file

Информация:

-d: разделитель (что разделяет поля)

-f7: напечатать седьмое поле

1
ответ дан 24 July 2018 в 19:54
  • 1
    Что, если это не было 7-ой поданной? : D – Ravexina 6 June 2017 в 16:52
  • 2
    Тогда будет использован другой метод: – George Udosen 6 June 2017 в 16:54

Я думаю, что вы ищете

grep -Po "(?<=opt3=\s)[0-9]+" file (?<=opt3=\s): мы ищем «opt3 =», однако мы не собираемся его включать. 0-9]+ число после «opt3 =» -o показывает только совпадение
0
ответ дан 24 July 2018 в 19:54

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

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