grep только положительное / отрицательное целочисленное значение

grep только положительное / отрицательное целочисленное значение

05.02.2020 10:56:47 Просмотров 3 Источник

Я ищу 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

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

egrep '[0-9]' testpart1.txt

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

grep '[0-9]\.[0-9]' testpart1.txt
У вопроса есть решение - Посмотреть?

Ответы - grep только положительное / отрицательное целочисленное значение / grep positive/negative integer value only

Является ответом!
anubhava

05.02.2020 10:59:46

Вы можете использовать этот 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:]]|$): совпадение конца строки или пробела или символа табуляции
Закрыть X