【发布时间】:2020-07-29 01:32:48
【问题描述】:
我有 shell 脚本 (.sh),我正在尝试使用以下命令将文件的内容插入到另一个文件中,但我抛出错误“sed: -e expression #1, char 28: unknown option to `s'":
filename="/home/user1/filename.txt"
contents=$(du -sh /var/log/test.log)
hostname > $filename
sed -i "/test_string/ s/$/, $contents" $filename
我似乎无法弄清楚根本问题出在哪里。有人可以帮忙吗?
例子:
文件名=/home/user1/filename.txt
主机名 = server1.mydomain.com
所以$filename的内容在运行hostname > $filename之后是server1.mydomain.com。
du -sh /var/log/test.log 命令的输出假设为1.3M /var/log/test.log
所以运行sed -i "/mydomain.com/ s/$/, $contents" $filename 应该将以下文件名的内容更新为:
server1.mydomain.com, 1.3M /var/log/test.log
但正如我上面提到的,它抛出了一个错误。
【问题讨论】:
-
s命令的语法:s/regex/replace/与三个/。 -
sed -i "/test_string/s/$/, $contents/" $filename
-
在插入包含正斜杠的变量时,另请参阅 stackoverflow.com/q/27787536/3266847。