我在/tmp/下有個t.sh檔
裡面的內容 我想將其中一行後面的yes改成no
如下圖(黃色是我所下的指令)
https://imgur.com/N1FM2pW.jpg

由於t.sh檔內的yes有二處,但我只需disable=yes改no而已,
所以我下sed指令時 不能單純搜尋yes改no
目前下的指令 sed -n '/disable/p' /tmp/t.sh |sed 's/yes/no/g'
所顯示到營幕的結果是我期望的,但這指令並無真正改到檔案
試過
sed -i '/disable/p' /tmp/t.sh |sed 's/yes/no/g' (結果為多插入一行)
sed -n '/disable/p' /tmp/t.sh |sed -i 's/yes/no/g' (結果顯示要輸入檔案)
sed -n '/disable/p' /tmp/t.sh |sed -i 's/yes/no/g' /tmp/t.sh (結果二處yes都被改no)
請問大家有解法嗎
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.110.200.41
※ 文章網址: https://www.ptt.cc/bbs/Linux/M.1556012509.A.83A.html
→
04/23 18:02,
6年前
, 1F
04/23 18:02, 1F
謝謝1樓,以下是我後來的用法
sed -r 's/(disable.*=) .*/\1 no/g' /tmp/t.sh -i
→
04/23 19:58,
6年前
, 2F
04/23 19:58, 2F
→
04/23 22:24,
6年前
, 3F
04/23 22:24, 3F
disable=後面有二個tab空白, 所以disable=yes抓不到
推
04/25 14:38,
6年前
, 4F
04/25 14:38, 4F
謝謝4 & 5樓,這種寫法真是清楚又好懂
推
04/26 15:49,
6年前
, 5F
04/26 15:49, 5F
推
04/26 20:34,
6年前
, 6F
04/26 20:34, 6F
推
04/26 22:41,
6年前
, 7F
04/26 22:41, 7F
推
04/27 15:04,
6年前
, 8F
04/27 15:04, 8F
→
04/27 15:05,
6年前
, 9F
04/27 15:05, 9F
※ 編輯: tutu (140.110.200.41), 04/29/2019 11:00:36
→
04/29 22:59,
6年前
, 10F
04/29 22:59, 10F
推
04/30 01:36,
6年前
, 11F
04/30 01:36, 11F
推
04/30 03:37,
6年前
, 12F
04/30 03:37, 12F
Linux 近期熱門文章
21
56
PTT數位生活區 即時熱門文章