gpt4 book ai didi

linux - 为什么我的 sed 命令在使用变量时失败?

转载 作者:IT王子 更新时间:2023-10-29 01:02:39 25 4
gpt4 key购买 nike

使用 bash,我试图为日期插入一个变量并搜索该日期的日志文件,然后将输出发送到一个文件。如果我像这样硬编码日期,它就可以工作:

sed -n '/Nov 22, 2010/,$p' $file >$log_file

但是如果我这样做它会失败:

date="Nov 22, 2010"
sed -n '/$date/,$p' $file >$log_file

我得到的错误是:sed: 1: "/Nov 22, 2010/,": expected context address感谢您的帮助。

最佳答案

在shell脚本中,单引号和双引号是有区别的。单引号内的变量展开(与双引号内的变量不同),因此您需要:

date="Nov 22, 2010"
sed -n "/$date/,\$p" $file >$log_file

反斜杠转义了应该由 shell 按字面意思获取并且对 sed 有意义的美元符号。

关于linux - 为什么我的 sed 命令在使用变量时失败?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4252280/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com