[問題] 用sed 置換部門代號

作者: kojj (我先想想)   2015-05-29 15:11:21
/* 聽說註明使用的語言、環境
* 問題有可能較容易被解決...
*/
使用環境:bash
我有一些json檔案如下
hangc.json: "primarygroup": "mdd",
changju.json: "primarygroup": "gr",
changk.json: "primarygroup": "tp_do_1",
changp.json: "primarygroup": "tm",
changsc.json: "primarygroup": "tc_bo",
changsh.json: "primarygroup": "tp_do_1",
changs.json: "primarygroup": "sd_do_1",
changt.json: "primarygroup": "sl",
primarygroup 是每個成員的所屬部門,但是我們某些系統中需要把所屬部門層級拉高到地區
例如
changc.json: "primarygroup": "mdd",
changju.json: "primarygroup": "gr",
changk.json: "primarygroup": "tp",
changp.json: "primarygroup": "tm",
changsc.json: "primarygroup": "tc",
changsh.json: "primarygroup": "tp",
changs.json: "primarygroup": "sd",
changt.json: "primarygroup": "sl",
我目前可以用sed 將檔案內的primarygroup置換成上述狀況
sed -i s/_[a-z][a-z]// $add_source/${add_user_name}.json
sed -i s/_[0-9]// $add_source/${add_user_name}.json
我想問的是,有沒有比較正確的寫法來處理這個問題?
作者: LPH66 (-6.2598534e+18f)   2015-05-30 02:32:00
於是這需求可以看成「找第一個 _ 之後吃到 " 為止」這樣就可以寫成 sed -i s/_[^"]*"/"/
作者: kojj (我先想想)   2015-05-30 20:43:00
感謝!腦袋瓜沒想到可以這樣做。

Links booklink

Contact Us: admin [ a t ] ucptt.com