Sed поиск и замена элемента в двойных кавычках - PullRequest
0 голосов
/ 25 апреля 2019

Мне нужно использовать только sed для поиска в текстовом файле и замены числа, которое может иметь другое значение.

Вот строка, которую мне нужно изменить.

"Value1": "60",

Я знаю, что могу сделать:

sed -i 's / "60" / "70" /' file.txt

но это слишком вероятно, чтобы найти другие элементы в файле и не позволяет мне изменять его независимо от значения.

То, что я хочу сделать, это заменить любое значение внутри вторых двойных кавычек после совпадения «Value1».

Я знаю, что это можно сделать, но я просто не понимаю правильный синтаксис.

Ответы [ 2 ]

0 голосов
/ 25 апреля 2019

попробуйте на GNU SED

sed -E 's/("Value1":\s*")60(",)/\170\2' file.txt

                          ^        ^

измените два указанных числа: 1-й - это то, что вы ищете, а 2-й - на что вы его заменяете

0 голосов
/ 25 апреля 2019

Команда в другом ответе также заменит значение после e. г. "Value2":. Предположительно, вы скорее этого хотите:

sed -i 's/"Value1": ".*"/"Value1": "70"/' file.txt
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...