grep только положительное / отрицательное целочисленное значение - PullRequest
1 голос
/ 05 февраля 2020

Я ищу grep только для любых положительных / отрицательных целых чисел и без десятичных разрядов, или любой другой вариант, включая число.

У меня есть testpart1.txt, который имеет:

This is a test for Part 1
Lets write -1324
Amount: $42.27
Numbers:
       -345,64
067

Phone numbers:

       (506)530-2424

Это должно вывести следующий код:

This is a test for Part 1
Lets write -1324
067

Я новичок в bash, и я не могу найти, как исключить любое число, разделенное символом, подобным '.' или ','. Я могу получить все числа с помощью следующего кода, но я застрял после этого:

egrep '[0-9]' testpart1.txt

Это дает мне противоположность того, что я хочу:

grep '[0-9]\.[0-9]' testpart1.txt

1 Ответ

1 голос
/ 05 февраля 2020

Вы можете использовать это grep:

grep -E '(^|[[:blank:]])[+-]?[0-9]+([[:blank:]]|$)' file

This is a test for Part 1
Lets write -1324
067

Детали:

  • -E: Включает расширенное сопоставление регулярных выражений
  • (^|[[:blank:]]): начало строки совпадения или пробел или символ табуляции
  • [+-]?: необязательное совпадение + или -
  • [0-9]+: совпадение 1 или более цифр
  • ([[:blank:]]|$): совпадение конца строки или пробела или символа табуляции
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...