строка grep, содержащая шаблоны "": "` - PullRequest
0 голосов
/ 05 декабря 2018

Это часть моего файла журнала на сервере

"order_items_subtotal":"60.5100","order_final_due_amount":"0.0000","items":[{"product_id"

Мне нужно выполнить поиск в журналах, которые содержат "order_final_due_amount":"0.0000" во всем моем файле журнала.

для этого я сделалвот так

tail -f pp_create_shipment2018-12-05.log | grep "order_final_due_amount":"0.0000"

но я получил ноль результатов.что было бы не так в моей хвостовой команде

Ответы [ 2 ]

0 голосов
/ 05 декабря 2018

Используя Perl, вам нужно просто экранировать "."в одиночестве.Qr // заботится об оставшемся.Проверьте это:

> cat product.log
order items
items1
"order_items_subtotal":"60.5100","order_final_due_amount":"0.0000","items":[{"product_id"
item2
"order_items_subtotal":"60.5100","order_final_due_amount":"000000","items":[{"product_id"
items3
"order_items_subtotal":"60.5100",order_final_due_amount:"0.0000","items":[{"product_id"
items4
>  perl -ne ' $pat=qr/"order_final_due_amount":"0\.0000"/; print if /$pat/ ' product.log
"order_items_subtotal":"60.5100","order_final_due_amount":"0.0000","items":[{"product_id"
>

Благодаря melpomene, ниже также работает

> perl -ne ' print if /"order_final_due_amount":"0\.0000"/ ' product.log
"order_items_subtotal":"60.5100","order_final_due_amount":"0.0000","items":[{"product_id"
>
0 голосов
/ 05 декабря 2018

" интерпретируется оболочкой (используется для кавычек, например пробелов).

grep "order_final_due_amount":"0.0000"

эквивалентно

grep order_final_due_amount:0.0000

Для передачи " в grep, вам нужно заключить его в кавычки:

grep '"order_final_due_amount":"0\.0000"'

(Кроме того, . является особенным в регулярных выражениях и его следует экранировать.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...