У меня есть данные, приведенные ниже, с другими строками данных в огромном файле, чтобы быть более конкретным. Это файл .json, я лишил весь файл, за исключением этого поймать.Заменить разделитель запятой двойных кавычек в скобках [] с помощью sed
данных:
- , "значение": [ "АВС-ДЕ", "XYZ-МН"]
- , "значение": [ "MNO-RS"], "sub_id ": 01
- " value ":" [\ "NEW-XYZ \"] ","
- , "value": ["ABC-DE", "XYZ-MN", "MNO-BE", " "FRS-ND"]
Я хочу, чтобы данные выглядели следующим образом:
- , "значение": [ "ABC-DE, XYZ-MN"] - Изменены
- , "значение": [ "MNO-RS"], "sub_id": 01-Unchanged
- " значение ":" [\ "NEW-XYZ \"] " "- Unchnaged
- ," значение ": [" ABC-DE, XYZ-MN, МНО-BE, FRS-ND"] - Изменены
до сих пор у меня есть этот кусок кода, однако это, кажется, заменяя целые файлы «» с, а не те, только в пределах []
sed 's/\(\[\|\","\|\]\)/\,/g' testfile_1.txt >testfile_2.txt
Любая помощь будет большим
** Примечание: Отредактированный четвертое условие
Приветствия.
Кванторы +, {п}, {п, т} и {п, } повторите предыдущий токен ноль или один раз, один или несколько раз, n раз, между n и m раз, и n или более раз, – clearlight
sed по умолчанию BRE: Поведение sed по умолчанию для поддержки Basic Regular Expressions (BRE). Чтобы использовать расширенные функции, установите флаг -r (Linux) или -E (BSD) для использования ERE. – clearlight
Другая вещь, которая пришла мне в голову, - это попробовать несколько проходов. Как один, чтобы удалить все кавычки, затем передать другой код, чтобы добавить их туда, где это необходимо? (daisychaining sed - другими словами). Я не знаю, эффективнее это или нет, во всяком случае, еще раз спасибо. Удачи! – clearlight