sed - sed 使用读取命令初始化多个单词字符串
问题描述
我有一个名为 file.conf 的文件,其中包含:
这是配置文本,这是要更改的字。
跑步:
sed -i 's/WORD/"ONE TWO"/g' file.conf
我将修改 file.conf:
这是配置文本,这是要更改的“一二”。
现在如果我制作一个脚本,使用读取:
read -p 'word to change' TEXT -> "ONE TWO"
echo $TEXT -> "ONE TWO"
sed -i 's/WORD/'$TEXT'/g' file.conf
它不适用于错误消息:
sed: -e expression #1, char 11: unterminated `s' command
在这种情况下,file.conf 不会被修改。
但如果我只用一个不带空格的单词阅读 $TEXT,它就可以工作:例如,“ONE”。
谢谢各位。
解决方案
像这样的双引号变量:
sed -i 's/WORD/'"$TEXT"'/g' file.conf
更安全:
sed -i 's/WORD/'"${TEXT}"'/g' file.conf
推荐阅读
- android - Android Jetpack 导航异常“无法从当前目的地找到导航”
- python - 使用 DSL 构建世界时的 SyntaxError
- android - 无法在条件语句中获取 Future 布尔值
- ios - M1:在带有 M1 芯片和 Big Sur 的 Mac 上使用模拟器 iOS 13 或更早版本和 Xcode 12.3 崩溃
- ios - 如何以编程方式从双卡 iPhone 中选择哪个 sim 卡发送短信?
- python - 带有双下标和期望符号的python图中的乳胶格式字符串问题
- django - 覆盖 Django 权限并修改 auth_permission
- android-jetpack-compose - 行内的 fillMaxHeight()
- python - kivy 中调用函数的问题(用 Python 的帮助编码)-.kv 文件中的调用函数
- kubernetes - 获取验证错误(部署):未知字段“env”