Câu hỏi chỉnh sửa tệp json bằng tập lệnh [trùng lặp]


Câu hỏi này đã có câu trả lời ở đây:

Tôi có một tập tin json rằng nó có hơn 30k dòng, và tôi cần phải thay thế tất cả các trường hợp }{ trong tệp với },{ bằng cách sử dụng shell script hoặc chỉ một trình soạn thảo văn bản như less hoặc vim.


1
2017-12-13 16:21


gốc


Nitpick không liên quan: ít hơn không phải là một trình soạn thảo, nó chỉ là một máy nhắn tin (một trình xem văn bản, nếu bạn thích). - terdon♦


Các câu trả lời:


Chỉ dùng sed:

sed 's/}{/},{/g' orig.json > new.json

Hoặc, để chỉnh sửa tệp tại chỗ (điều này sẽ sao chép tệp gốc thành orig.json.bak):

sed -i.bak 's/}{/},{/g' orig.json

3
2017-12-13 16:25



Nếu có một đường trả về giữa } và {, should I put sed 's/}/n{/},{/g' orig.json > new.json ?? - HISI
\n thay vì /n. Nhưng điều đó sẽ không hiệu quả. Xem ở đây: unix.stackexchange.com/questions/26284/… - RoVo
@ YassineSihi không, nếu có một dòng trả lại thì bạn đang yêu cầu một cái gì đó hoàn toàn khác nhau và điều đó sẽ không hoạt động. Đó là lý do tại sao bạn luôn luôn bao gồm các ví dụ khi hỏi loại câu hỏi này. }{ Là không phải giống như } { và không giống như }\n{ hoặc là }\t{. - terdon♦