shell 脚本获取今天、昨天、前天以及n天前的日期
发表于|更新于|编程语言
1、获取今天的日期
log=$(date -d "now" +%Y-%m-%d) |
2、获取昨天的日期
log2=$(date -d "yesterday" +%Y-%m-%d) |
或者
log2=$(date -d "1 day ago" +%Y-%m-%d) |
3、获取前天的日期
log3=$(date -d"2 day ago" +%Y-%m-%d) |
4、获取具体日期的前几天
log4=$(date -d"15 day ago 2017-04-16" +%Y-%m-%d) |
输出:2017-04-01
文章作者: Leon
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 Leon!
相关推荐
2023-12-22
Shell 扫描目录下文件, 格式化生成SQL分割文件.
[root@data table]# ls20230717 20230725 20230802 20230810 20230818 20230826 20230903 20230911 20230919 20230927 20231005 20231013 20231021 20231029 2023110620230718 20230726 20230803 20230811 20230819 20230827 20230904 20230912 20230920 20230928 20231006 20231014 20231022 20231030 2023110720230719 20230727 20230804 20230812 20230820 20230828 20230905 20230913 20230921 20230929 20231007 20231015 20231023 20231031 2023110820230720 20230728 20230805 ...

2024-07-29
echo '' > 1.log 和 true >1.log 哪种清理日志方式更合理
在 Linux 系统中,清空日志文件的方式有多种,包括 echo '' > 1.log 和 true > 1.log。两种方式都可以清空文件内容,但它们略有不同的作用和效果: echo '' > 1.log: 这个命令会将一个空字符串写入文件 1.log,实际上是将文件内容清空。 echo '' 表示输出一个空字符串,> 表示重定向并覆盖文件内容。 这种方式会打开文件并写入一个空字符串,然后关闭文件。适用于清空文件内容并保持文件存在的情况。 true > 1.log: true 是一个命令,它会始终返回成功(退出码为 0)。 > 1.log 表示将 true 命令的输出重定向到 1.log 文件中,实际上是清空文件内容。 这种方式不需要打开文件,只是将 true 命令的成功输出重定向到文件,从而实现清空文件内容的效果。 建议选择: 一般推荐使用 true > 1.log 来清空日志文件,因为它更加高效,不需要打开文件进行写入操作。 如果需要确保文件内容被清空并且文件保持存...
2017-01-13
Linux shell 循环示例
Linux Shell循环示例在Linux系统中,Shell脚本是一种强大的工具,可以用于自动化任务和批处理操作。循环是Shell脚本中常用的控制结构之一,它允许我们重复执行一系列命令。在本篇博客中,我们将介绍一些常见的Shell循环示例。 1. for循环for循环是一种在给定范围内重复执行命令的循环结构。以下是一个for循环的示例: for i in 1 2 3 4 5do echo "Number: $i"done 在上述示例中,for循环将在数字1到5之间迭代,并输出每个数字。 我们还可以使用特定的范围来定义for循环。例如,以下示例将在1到10之间的数字上进行迭代: for i in {1..10}do echo "Number: $i"done 2. while循环while循环是一种在给定条件为真时重复执行命令的循环结构。以下是一个while循环的示例: counter=1while [ $counter -le 5 ]do echo "Count: $counter" ...
2016-02-26
Shell重定向 &>file、2>&1、1>&2 、/dev/null的区别
在shell编程中, 重定向是一种常用的技术, 它允许将命令的输出发送到一个文件或者设备上, 而不是显示在屏幕上. 这里, 我们将介绍四种常见的shell重定向方法, 以及它们之间的区别. > file> file 是最基本的shell重定向方法, 它将命令的输出发送到一个文件中. 例如, 下面的命令将输出发送到一个名为”output.txt”的文件中: $ command > output.txt 这个命令会将command的输出发送到output.txt文件中, 并且会覆盖原有的内容. 如果想要将输出添加到现有的文件中, 可以使用>>符号代替>. 2>&12>&1 是一种特殊的shell重定向方法, 它将标准错误(stderr)重定向到标准输出(stdout). 例如, 下面的命令将标准错误重定向到标准输出: $ command 2>&1 这个命令会将command的标准错误发送到标准输出中, 并且会覆盖原有的内容. 如果想要将标准错误添加到现有的文件中, 可以使用>>符号代替&...
2016-03-12
Shell实用案例:批量生成随机字符文件名
当我们需要在批量处理文件时,有时候需要为每个文件生成唯一的随机字符文件名。这种情况下,我们可以使用Shell脚本来批量生成随机字符文件名。下面是一个实用的Shell脚本案例,用于生成随机字符文件名。 #!/bin/bash# 指定生成文件名的数量num_files=10# 指定生成文件名的长度filename_length=8# 生成随机字符文件名函数generate_random_filename() { cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w $filename_length | head -n 1}# 创建文件并重命名for ((i=1; i<=$num_files; i++))do random_filename=$(generate_random_filename) touch "file$i.txt" mv "file$i.txt" "$random_filename.txt" ...
2023-12-01
Mac shell 指令 修改文本最后一行的 , 换成 ;
你可以使用以下命令来修改文本文件中最后一行的逗号(,)为分号(;): sed '$ s/,$/;/' file.txt > temp.txt && mv temp.txt file.txt 这个命令使用sed工具,它在给定的文本文件中进行替换操作。具体步骤如下: $表示匹配最后一行。 s/,$/;/表示将逗号(,)替换为分号(;)。 file.txt是要修改的文本文件名。 命令执行后,它将生成一个临时文件temp.txt,其中修改了最后一行的逗号为分号。然后,使用mv命令将临时文件重命名为原始文件file.txt,以完成修改。 请注意,在运行这个命令之前,请备份你的文件以防万一。 直接修改 : 你可以使用以下命令直接修改文本文件中最后一行的逗号(,)为分号(;): echo "$(head -n -1 file.txt),;" > file.txt 这个命令使用了命令替换(command substitution)的方式。具体步骤如下: head -n -1 file.txt用于获取除了最后一行之...
评论
公告
记录技术实践,分享学习与思考。



