我想修改此命令以自动从当前日期减去30天
$ awk -v t=$(date +%Y-%m-%d) -F "'" '$1 < t' myname.dat
当我尝试
$ awk -v t=$(date "--date=$(date) -30days" +%Y-%m-%d) -F "'" '$1 < t' myname.dat
我收到以下错误;日期:非法选项
我想要执行此操作而不必将日期转换为文件中的纪元时间。
答案 0 :(得分:0)
@edit:以下内容仅适用于GNU日期:
您总是可以减去秒。
date --date=@$(($(date +%s) - 30 * 24 * 3600)) +%Y-%m-%d
如果您想从“现在”中减去30天,只需:
date --date="-30days" +%Y-%m-%d
date
日期格式如此广泛,最好使用-I
选项指定确切的日期,以人工日期为准:
-I[FMT], --iso-8601[=FMT] output date/time in ISO 8601 format. FMT='date' for date only (the default), 'hours', 'minutes', 'seconds', or 'ns' for date and time to the indicated precision. Example: 2006-08-14T02:34:56-06:00
以下内容:
date --date="$(date -I) -30days" +%Y-%m-%d
可以在我的系统上正常工作。