Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Date命令编写unixshell脚本_Shell_Date_Unix_Format_Sh - Fatal编程技术网

使用Date命令编写unixshell脚本

使用Date命令编写unixshell脚本,shell,date,unix,format,sh,Shell,Date,Unix,Format,Sh,好的,我正在尝试使用date命令将scrpit写入wc文件。例如,文件的格式如下:testfile20170104.gz 现在,文件设置为具有昨天的日期,格式为yyyymmdd。因此,如果今天是2017年1月5日,文件将以yyyymmdd格式显示2017年1月4日的前一天,如上面的示例所示 通常,要计算文件的数量,只需输入:gzcat testfile20170104.gz | wc-l即可获得字数 但是,我想做的是运行一个脚本,甚至是一个for循环来复制文件,但是我不需要在命令行中复制和粘贴文

好的,我正在尝试使用date命令将scrpit写入wc文件。例如,文件的格式如下:testfile20170104.gz

现在,文件设置为具有昨天的日期,格式为yyyymmdd。因此,如果今天是2017年1月5日,文件将以yyyymmdd格式显示2017年1月4日的前一天,如上面的示例所示

通常,要计算文件的数量,只需输入:gzcat testfile20170104.gz | wc-l即可获得字数

但是,我想做的是运行一个脚本,甚至是一个for循环来复制文件,但是我不需要在命令行中复制和粘贴文件名,而是要使用date命令以yyyymmdd格式在文件名中输入昨天的日期

因此,作为一个模板,如下所示:

gzcat测试文件*.gz | wc-l | date=“-1天”+%Y%m%d

现在我知道我上面说的是完全错误的,但你明白了。我想用date命令的输出替换“*”,如果这有意义的话

任何帮助都将不胜感激

谢谢

您想要:

filename="testfile$( date -d yesterday +%Y%m%d ).gz"
zcat "$filename"

对不起,什么?一个非sh for循环?例如,我仍然能够使用相同的代码,方法是:for file in/data/dir>do>filename=“testfile$(date-date-dayed+%Y%m%d).gz>zcat“$filename”>done这仍然有效吗?