簡體   English   中英

在文件中添加新行

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM