[英]Adding a new line to a file
我正在嘗試使用 bash 腳本來禁用 Spotify 在 macOS 上登錄時啟動的功能。 Spotify 不使用登錄項或啟動項來啟動,因此我必須弄清楚這一點。
Spotify 在~/Library/Application Support/Spotify
中有一個名為prefs
的文件。 我可以通過在文件中的core.clock_delta=0
行之后添加行app.autostart-mode="off"
手動編輯文件。 我想弄清楚的是如何用腳本來做到這一點。 我嘗試了以下方法:
sed '/core.clock_delta=0/a app.autostart-mode=\"off\"' prefs
這給了我錯誤sed: 1: "/core.clock_delta=0/a a...": command a expects \ followed by text
awk '1;/core.clock_delta=0/{ print "app.autostart-mode=\"off\""; }' prefs
這會以我期望的方式輸出prefs
文件的文本,但不會向prefs
文件寫入任何內容,考慮到它是awk
,這是有道理的。 我讀到的一個建議是在awk
中添加-i
,但這不是一個公認的選項。 我不能在需要它的地方使用該行,因為該行可能會隨着更新而改變。 我也不能只用一個新文件替換整個文件,因為它還包含散列帳戶信息。 我也嘗試將此行添加到文件末尾,但 Spotify 會在第一次運行時崩潰,然后替換文件。
基本上我正在尋找的是這個
storage.last-location="~/Library/Application Support/Spotify/PersistentCache/Storage"
core.clock_delta=0
app.last-launched-version="1.1.55.498.gf9a83c60"
app.autostart-configured=true
成為這個
storage.last-location="~/Library/Application Support/Spotify/PersistentCache/Storage"
core.clock_delta=0
app.autostart-mode="off"
app.last-launched-version="1.1.55.498.gf9a83c60"
app.autostart-configured=true
我在這里搜索並嘗試了解決方案,但似乎沒有一個有效,有些人的建議是“我做了這個……”,但沒有解釋他們是如何做到“這個”的。
使用您顯示的示例,您能否嘗試以下操作。 只需找到字符串的匹配項並打印您要打印的當前行和值。
awk '/core\.clock_delta=0/{print $0 ORS "app.autostart-mode=\"off\"";next} 1' Input_file
或者可以這樣做:
awk '/core\.clock_delta=0/{$0=$0 ORS "app.autostart-mode=\"off\""} 1' Input_file
一旦您對屏幕/終端上打印的結果感到滿意,然后 append > temp && mv temp Input_file
到上述命令以將更改保存到 Input_file 本身。
這可能對您有用:
sed -i'' -e '/core.clock_delta=0/a app.autostart-mode="off"' prefs
-i
選項允許更改覆蓋原始文件。
macOS 可能需要-e
選項。
"
不需要轉義,因為它們在a
命令中沒有意義。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.