
我正在嘗試在 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」。如果您想匹配任何一年,請告訴我們。