用空格替换文字&特殊字符

时间:2014-06-12 19:35:25

标签: linux bash sed

我正在尝试制作一个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 。我也尝试更换顶线,但需要在配置中进一步缩小。我无法根据行号更改它,因为某些配置可能是不同的数字。

1 个答案:

答案 0 :(得分:3)

  1. ~使用sed之类的备用正则表达式分隔符,因为您的sed在输入字符串中有/
  2. 避免使用catsed
  3. 使用双引号进行变量扩展
  4. Sed命令:

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