2017-07-15 45 views
-2

我正在使用JSON格式的文本文件。我想只保留這種模式啓動線:在文本文件中保留以模式開頭的行

{「消息類型」:「SALES.CONTRACTS.SALECREATED」

在這裏你可以看到我的兩行數據:

{"MessageType": "SALES.CONTRACTS.HOLDCREATED", "Event": {"Id": "ZWbDoMKQw6HDjFzCo8KuwpNmwofCjl7Co8OPwpDCncOSXMOdccKTZVVWZWbCnA==", "RefInfo": {"TenantId": {"Id": "ZMKXwpbClsOhwpNiw5E="}, "UserId": {"Id": "wpzCksKWwpbCpMKTYsKeZMKZbA=="}, "SentUtc": "2013-04-28T16:59:48.6698042", "Source": 1}, "ItemId": {"Id": 116228}, "Quantity": 1, "ExpirationDate": "2013-04-29T03:59:44.241", "Description": null}} 

{"MessageType": "SALES.CONTRACTS.SALECREATED", "Event": {"Id": {"Source": 1, "SourceId": "ZGA=-3-1-002-0801743-2330650"}, "RefInfo": {"TenantId": {"Id": "ZGA="}, "UserId": {"Id": "ZGY="}, "SentUtc": "2013-01-14T15:39:03.5237879", "Source": 1}, "Status": {"Status": 3, "AutoRemoveInfo": null}, "Items": {"Items": [{"Id": {"Id": 1193}, "Sku": {"Sku": "Con BM20"}, "Quantity": 1, "UnitPrice": {"amount": 11.92, "currency": 840}}], "FulfilledItems": []}, "ShippingInfo": {"Carrier": "", "Class": "", "Region": null, "Country": 0, "PostalCode": null, "Costs": null, "Charges": null}, "SaleDate": "2013-01-13T13:39:57", "Kits": null, "Products": null, "AdditionalSaleInfo": null}} 

對我來說,所需的輸出將是:

{"MessageType": "SALES.CONTRACTS.SALECREATED", "Event": {"Id": {"Source": 1, "SourceId": "ZGA=-3-1-002-0801743-2330650"}, "RefInfo": {"TenantId": {"Id": "ZGA="}, "UserId": {"Id": "ZGY="}, "SentUtc": "2013-01-14T15:39:03.5237879", "Source": 1}, "Status": {"Status": 3, "AutoRemoveInfo": null}, "Items": {"Items": [{"Id": {"Id": 1193}, "Sku": {"Sku": "Con BM20"}, "Quantity": 1, "UnitPrice": {"amount": 11.92, "currency": 840}}], "FulfilledItems": []}, "ShippingInfo": {"Carrier": "", "Class": "", "Region": null, "Country": 0, "PostalCode": null, "Costs": null, "Charges": null}, "SaleDate": "2013-01-13T13:39:57", "Kits": null, "Products": null, "AdditionalSaleInfo": null}} 

用awk,sed的或者grep的,我怎麼可以搜索我的整個data.raw文件只保留與所需的圖案開頭的行?我想將結果保存在一個new.raw文件中。

回答

0

簡單AWK方法:

awk '/"MessageType": "SALES\.CONTRACTS\.SALECREATED"/' inputfile > newfile 

的sed方法:

sed '/"MessageType": "SALES\.CONTRACTS\.SALECREATED"/!d' inputfile > newfile 
0

嘗試,在同一個多SED的方法。

sed -n '/{"MessageType": "SALES.CONTRACTS.SALECREATED"/p' Input_file 

所以簡單地停止印刷與-n選項的線,然後你給要印刷圖案和印刷只是線,在它這個模式搜索。

我也嘗試過使用簡單的grep,它也爲我成功地工作如下。

grep '{"MessageType": "SALES.CONTRACTS.SALECREATED"' Input_file 
相關問題