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

看板RegExp (正規表示式 Regular Expression)作者 (我先想想)時間10年前 (2015/05/29 15:11), 編輯推噓1(102)
留言3則, 2人參與, 最新討論串1/1
/* 聽說註明使用的語言、環境 * 問題有可能較容易被解決... */ 使用環境: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 我想問的是,有沒有比較正確的寫法來處理這個問題? -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 27.105.102.46 ※ 文章網址: https://www.ptt.cc/bbs/RegExp/M.1432883484.A.F34.html

05/30 02:32, , 1F
於是這需求可以看成「找第一個 _ 之後吃到 " 為止」
05/30 02:32, 1F

05/30 02:33, , 2F
這樣就可以寫成 sed -i s/_[^"]*"/"/
05/30 02:33, 2F

05/30 20:43, , 3F
感謝!腦袋瓜沒想到可以這樣做。
05/30 20:43, 3F
文章代碼(AID): #1LQ14Syq (RegExp)
文章代碼(AID): #1LQ14Syq (RegExp)