【发布时间】:2021-11-23 09:24:07
【问题描述】:
我有一个txt文件,内容如下:
hello my name
is teddy bear,
I like
eating sweet honey!
我想将行 is teddy bear 替换为 is sleepy bear,用 shell 脚本。
我正在尝试以下代码:
#!/bin/sh
ORI_LINE="is[[:space:]]teddy[[:space:]]bear"
NEW_LINE="is[[:space:]]sleepy[[:space:]]bear"
eval sed -i -e 's/$ORI_LINE/$NEW_LINE/g' ./hello.txt
但最后我得到了
hello my name
is[[:space:]]sleepy[[:space:]]bear,
I like
eating sweet honey!
其中[[:space:]] 未解析为真实空间。
我想继续使用变量 ORI_LINE 和 NEW_LINE,而不是使用 sed 命令的内联字符串。
谢谢!
【问题讨论】:
-
sed -e 's/是泰迪熊/是瞌睡熊/g' hello.txt