如何在 shell 脚本中添加日期
How to add day date in shell script
我有以下脚本,我想在末尾的新列中添加轮换日期。
find /sasdata -type f -exec sh -c \
'for f; do stat --format="%n,%x,%y,%z,$(du -k "$f" | cut -f1)" "$f"; done' \
_ {} + > /sasdata/output_sasdata_file_info.txt
列之间用逗号分隔。
我目前的输出是:
/sasdata/arquivo.gz,2019-02-04 15:16:55.886454268 -0200,2018-10-02 15:49:49.936062260 -0300,2021-02-01 16:40:26.542568391 -0300,19392
我希望输出如下:
/sasdata/arquivo.gz,2019-02-04 15:16:55.886454268 -0200,2018-10-02 15:49:49.936062260 -0300,2021-02-01 16:40:26.542568391 -0300,19392,2022-04-10
感谢任何能帮助我的人。
使用 $(...)
命令替换捕获 stat
语句的输出并将其传递给 echo -n
命令,以在末尾不带换行符的情况下输出它。然后使用 date
命令跟随它。
工作原理示例:
$ ls -d /; date +%F # outputs:
/
2022-04-14
$ echo -n $( ls -d / ),; date +%F # outputs
/,2022-04-14
所以你传递给 shell 的命令应该是这样的:
sh -c 'for f; do echo -n $( stat --format="%n,%x,%y,%z,$(du -k "$f" | cut -f1)" "$f" ),; date +%F; done'
试试这个:
#!/usr/bin/env bash
today=$(date +%F)
find /sasdata -type f -exec sh -c \
'for f; do
stat --format="%n,%x,%y,%z,$(du -k "$f" | cut -f1)"',$today' "$f"
done' \
_ {} + > /sasdata/output_sasdata_file_info.txt
我有以下脚本,我想在末尾的新列中添加轮换日期。
find /sasdata -type f -exec sh -c \
'for f; do stat --format="%n,%x,%y,%z,$(du -k "$f" | cut -f1)" "$f"; done' \
_ {} + > /sasdata/output_sasdata_file_info.txt
列之间用逗号分隔。
我目前的输出是:
/sasdata/arquivo.gz,2019-02-04 15:16:55.886454268 -0200,2018-10-02 15:49:49.936062260 -0300,2021-02-01 16:40:26.542568391 -0300,19392
我希望输出如下:
/sasdata/arquivo.gz,2019-02-04 15:16:55.886454268 -0200,2018-10-02 15:49:49.936062260 -0300,2021-02-01 16:40:26.542568391 -0300,19392,2022-04-10
感谢任何能帮助我的人。
使用 $(...)
命令替换捕获 stat
语句的输出并将其传递给 echo -n
命令,以在末尾不带换行符的情况下输出它。然后使用 date
命令跟随它。
工作原理示例:
$ ls -d /; date +%F # outputs:
/
2022-04-14
$ echo -n $( ls -d / ),; date +%F # outputs
/,2022-04-14
所以你传递给 shell 的命令应该是这样的:
sh -c 'for f; do echo -n $( stat --format="%n,%x,%y,%z,$(du -k "$f" | cut -f1)" "$f" ),; date +%F; done'
试试这个:
#!/usr/bin/env bash
today=$(date +%F)
find /sasdata -type f -exec sh -c \
'for f; do
stat --format="%n,%x,%y,%z,$(du -k "$f" | cut -f1)"',$today' "$f"
done' \
_ {} + > /sasdata/output_sasdata_file_info.txt