gpt4 book ai didi

linux - 在 sed 中使用变量

转载 作者:太空狗 更新时间:2023-10-29 11:22:42 24 4
gpt4 key购买 nike

我正在尝试在 Linux (Ubuntu) 中使用 sed 删除文件的一部分。具体来说,我想删除日志文件的第一行,直到第一次出现当前系统日期(使用模式“10 Jan 13”)。

所以,我将日期存储在一个变量中

root@server:/# VAR_DATE=`date -R | cut -c6-11`

然后,我使用 sed

root@server:/# cat log_file.txt | sed -n -e '/$VAR_DATE/,$p'

但它不起作用。我已经尝试了很多具有相同结果的组合:

root@server:/# cat log_file.txt | sed -n -e '/"$VAR_DATE"/,$p'
root@server:/# cat log_file.txt | sed -n -e '/"${VAR_DATE}"/,$p'
root@server:/# cat log_file.txt | sed -n -e "/$VAR_DATE/,$p"

我做错了什么?

最佳答案

使用双引号使变量 $vardate 被 shell 扩展并转义最后一个 $ 所以它不会被 shell 扩展 sed -n "/$vardate/,\$p"文件:

$ cat file
6 Jan 13
7 Jan 13
8 Jan 13
9 Jan 13
10 Jan 13
11 Jan 13
12 Jan 13
13 Jan 13

$ vardate="10 Jan 13"

$ sed -n "/$vardate/,\$p" file
10 Jan 13
11 Jan 13
12 Jan 13
13 Jan 13

关于linux - 在 sed 中使用变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14254723/

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