看板 Linux 關於我們 聯絡資訊
我想修改 /etc/hosts 檔案裡面的某一行 本來是傻傻的直接去修改那一行 sed -i "5c $iip fl01.com" /etc/hosts 但是後來覺得這樣有點風險 因為萬一改天忘記了去改變到行數、修改就有可能失敗 所以想請教有沒有辦法針對不特定的行數去做修改 變動的是前面的 ip 不變的是後面的 fl01.com -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 220.132.170.2 ※ 文章網址: https://www.ptt.cc/bbs/Linux/M.1460012382.A.833.html
kerwinhui: 先用/pattern/去找你要的行數… 04/07 15:41
我現在改成先用 nl + grep 去找 fl01.com 的行數 但是這招跨主機的時候好像會失效、還要再研究看看 只是想知道有沒有更簡單的方法 ※ 編輯: zhucc (220.132.170.2), 04/07/2016 16:09:05
soem: sed -i -r "s/^[0-9.]+\\s+fl01\.com\$/$iip fl01.com/" 04/07 16:19
soem: \\. 打錯了也行?原來有容錯 04/07 16:22
感謝^^ ※ 編輯: zhucc (220.132.170.2), 04/07/2016 16:34:45
kerwinhui: sed -i -r '/\s+fl01\.com\s+$/c '$iip' fl01.com' \ 04/07 17:43
kerwinhui: /etc/hosts 04/07 17:43
kerwinhui: 或者不用 extended regexp 04/07 17:44
kerwinhui: sed -i '/ fl01\.com$/c '$iip' fl01.com' /etc/hosts 04/07 17:45
謝謝、我來研究一下 對這塊沒有那麼熟 ※ 編輯: zhucc (220.132.170.2), 04/07/2016 21:53:26
abelyang: sed -i "s/^.*[ \t]fl01\.com.*$/${iip} fl01.com/" 04/14 14:53