Используя grep, как мне сделать это в одной командной строке?
У меня есть этот grep '\$[0-9][0-9]\.[0-9][0-9]' money.txt
с различными строками в текстовом файле, но у меня есть проблемы, удовлетворяющие некоторые из моих условий.
Я пытаюсь найти любые строки, которые содержат значения в долларах от $ 10,00 до $ 99,99 (знак доллара + две цифры после запятой), и моя поймает все, но даже если у вас есть текст до или после него
например, abc$15.64
, abc$15.64xyz
, $15.64abc
Я хочу, чтобы они были перехвачены, только если есть пробел либо до (например, конец строки), после (начало строки), до и после (середина строки), либо вообще без пробелов (например, только строка в строке ).
Я попытался добавить \s, но тогда он вообще ничего не печатает (даже что-то допустимое, например abc $15.64 xyz
), хотя они печатаются нормально, если я сделаю их необязательными (используя *). Итак, я предполагаю, что он просто полностью игнорирует \s, так как он, кажется, ничего не удовлетворяет.
Примечание: я хочу сделать пробелы необязательными, потому что мне нужно также печатать строку, когда значения в долларах находятся в начале или в конце строки, и в этом случае пробел не будет до или после них, соответственно. Даже если бы я мог заставить \s работать, если сделать его необязательным, он все равно будет соответствовать строкам вроде abc$15.64xyz
Любая идея, как я мог бы сделать эту работу?
Благодарю.