2014-06-12 72 views
0

我想讓一個bash腳本在Debian中啓用自動登錄。我需要更換這行:用空格和特殊字符替換文本

1:2345:respawn:/sbin/getty 38400 tty 

這一個:

1:2345:respawn:/sbin/getty tty1 --autologin $uName 

我試過,但我接受,因爲的錯誤: - $和空間

uName=Sean 
Old="1:2345:respawn:/sbin/getty 38400 tty" 
New="1:2345:respawn:/sbin/getty tty1 --autologin $uName" 

cat /location/file.txt | sed s/$Old/$New/ 

我試過將38400 tty替換成別的東西,但該文件有多行包含38400 tty。我也嘗試更換頂部線,但它需要在配置中進一步下去。我不能根據行號來改變它,因爲一些配置可能是不同的數字。

回答

3
  1. ,因爲你的戰略經濟對話/在輸入字符串使用備用的正則表達式的分隔符像~sed
  2. 避免使用catsed
  3. 可變擴展
  4. 使用雙引號

sed命令:

sed "s~$Old~$New~" /location/file.txt 
+1

它的工作原理!謝謝一堆! – Seaner992

+0

不客氣,很高興它的工作。 – anubhava