我正在尝试在 bash 中做这样的事情:
grep ( date | awk '{print "2006-" $6}' ) /some/file/here
但该语法不正确。
目标是 grep /some/file/here 以找到模式 2006-2011,其中 2011 是当前年份。
答案1
grep "$(date | awk '{print "2006-" $6}')" /some/file/here
"..."
将其内容作为一个参数保存(即使有空格)。
$(...)
代表“命令替换”,其中运行嵌入命令的标准输出将放在原始命令行上。(另一种语法`...`
也很常见,但嵌套起来要困难得多。)
更轻松:
grep "$(date +'2006-%Y')" /some/file/here
在这里,您可以使用日期的功能任意格式化输出。
请注意,这些都不匹配 2006-2011 范围内的任何年份,它们匹配文字字符串“2006-2011”。如果您想匹配任何一年,请告诉我们。