【发布时间】:2013-11-30 20:28:03
【问题描述】:
我有一个文件,我想用 "Nov 30" 或 "Nov 30" 之类的字符串 grep 出行(基本上我不想指定中间的空格数。
在终端中这很好,我会这样做:
grep 'Nov * 30' file
但是,为了我的目的,最好保持一般性,所以实际上我想做这样的事情:
grep "$(date +%b) * $(date +%d)" file
这很好,但我实际上想通过 ssh 来做到这一点,所以它就像
ssh -t host "grep "$(date +%b) * $(date +%d)" file"
此时我遇到了问题。它不是仅针对 11 月 30 日类型的日期字符串进行 grepping,而是返回各种不同的 11 月日期。我觉得这个问题与双引号的使用有关(也许 -t 参数的第一组双引号影响了第二批,但我不知道如何解决这个问题),我从@看到987654321@ 回答“bash 将在本地计算机上评估和替换双引号内的变量,但会在单引号内的目标计算机上执行此操作”。所以我尝试用
替换上面的ssh -t host "grep '$(date +%b) * $(date +%d)' file"
但现在 grep 根本不返回任何结果!我认为这是因为我正在寻找文字'$(date +%b)...'而不是替代的'Nov..',但是我不明白为什么第一次尝试使用双引号没有工作。
欢迎任何帮助
【问题讨论】:
标签: regex bash quotation-marks