我試圖從數據文件中刪除單引號之後的所有空格。不過,我並沒有捕捉到下面的情況。sed沒有替換所有的東西
輸入
{'_id':' BE3523 ', 'time':' 18:20 ', 'number':' BE3523 ', 'destination':' Bordeaux ', 'status': ' Scheduled '}
sed命令我跑......
sed -i.bak 's/['\'' ]\{2\}/'\''/g' input.json
輸出
{'_id':'BE3523','time':'18:20','number':'BE3523','destination':'Bordeaux','status':' Scheduled'}
注'_Scheduled
遺蹟之間的空間,但每其他空間有已被刪除。我必須再次運行sed命令來擺脫這個最後空間,下面的是
{'_id':'BE3523','time':'18:20','number':'BE3523','destination':'Bordeaux','status':'Scheduled'}
任何想法,我做錯了,爲什麼這樣一個空間始終保持?
','計劃的'有3個字符的那個字符類,而不是2. – LukStorms
請注意,對結構化數據使用正則表達式通常是一個壞主意。大多數情況下最好解析它,然後創建適當的輸出。 (例如,考慮\'在值內跳轉的情況)例如: –
perl 5 perl:'perl -i.bak -pe's/[] +(?='\'')|(?<=' \'')[] + // g'input.json' – LukStorms