Sed

使用 sed 啟用 lightdm 自動登錄

  • March 23, 2021

我需要/etc/lightdm/lightdm.conf使用sed內部特定部分進行編輯,取消註釋並設置值。

這部分是[Seat:*]和行是#autologin-user=

我期待這種變化:

之前:

[LightDM]
.
.
.
[Seat:*]
.
.
.
#autologin-user=
.
.
.

後:

[LightDM]
.
.
.
[Seat:*]
.
.
.
autologin-user=pi
.
.
.

我試過這個命令:

sed -i.bak '/^\[Seat:*]/{s/#autologin-user/autologin-user=pi/}' /etc/lightdm/lightdm.conf

但沒有成功。

PS: 的出現次數較多#autologin-user,所以選擇部分[Seat:*]非常重要。

試試這個,給定一個改變的輸入文件樣本:

[LightDM]
[Seat:*]
#autologin-user=
[Foo:*]
#autologin-user=
[Bar:*]
#autologin-user=

命令:

$ sed '/^\[Seat:\*\]$/,/\[/s/^#autologin-user=$/autologin-user=pi/' foo.txt 
[LightDM]
[Seat:*]
autologin-user=pi
[Foo:*]
#autologin-user=
[Bar:*]
#autologin-user=

引用自:https://unix.stackexchange.com/questions/640731