Linux学习-60-date、tr命令
admin
2024-03-06 06:20:26
0

13.4 date命令:显示或设置系统时间与日期

  • 很多shell脚本里面需要打印不同格式的时间或日期,以及要根据时间和日期执行操作。延时通常用于脚本执行过程中提供一段等待的时间。日期可以以多种格式去打印,也可以使用命令设置固定的格式。在类UNIX系统中,日期被存储为一个整数,其大小为自世界标准时间(UTC)1970年1月1日0时0分0秒起流逝的秒数。语法格式:
date(选项)(参数)
  • 选项及含义:
-d<字符串>:显示字符串所指的日期与时间。字符串前后必须加上双引号;
-s<字符串>:根据字符串来设置日期与时间。字符串前后必须加上双引号;
-u:显示GMT;
--help:在线帮助;
--version:显示版本信息。
  • 参数:<+时间日期格式>:指定显示时使用的日期时间格式。 以下是常见的日期格式字符串列表:
%H 小时,24小时制(00~23)
%I 小时,12小时制(01~12)
%k 小时,24小时制(0~23)
%l 小时,12小时制(1~12)
%M 分(00~59)
%p 显示出上午或下午
%r 时间,12小时制
%s 从1970年1月1日0点到目前经历的秒数
%S 秒(00~59) 
%T 时间(24小时制)(hh:mm:ss)
%X 显示时间的格式(%H时%M分%S秒)
%Z 按字母表排序的时区缩写
%a 星期名缩写
%A 星期名全称
%b 月名缩写
%B 月名全称
%c 日期和时间
%d 按月计的日期(01~31)
%D 日期(mm/dd/yy) 
%h 和%b选项相同
%j 一年的第几天(001~366)
%m 月份(01~12)
%w 一个星期的第几天(0代表星期天)
%W 一年的第几个星期(00~53,星期一为第一天)
%x 显示日期的格式(mm/dd/yy)
%y 年份的最后两个数字(1999则是99)
%Y 年份(比如1970、1996等)
%C   世纪,通常为省略当前年份的后两位数字
%U  一年中的第几周,以周日为每星期第一天
%e   按月计的日期,添加空格,等于%_d
  • 实例:
#格式化当前日期输出:
[root@CncLucZK ~]# date +"%Y/%m/%d"
2022/10/27
#输出7天前日期:
[root@CncLucZK ~]# date -d "7 day ago" +"%Y/%m/%d"
2022/10/20
#2秒后输出:
[root@CncLucZK ~]# date -d "7 second" +"%Y/%m/%d %H:%M:%S"
2022/10/27 14:05:22
#普通字符转时间格式:
[root@CncLucZK ~]# date -d "20221022" +"%Y/%m/%d %H:%M:%S"
2022/10/22 00:00:00
#格式化1234567890秒
[root@CncLucZK ~]# date -d "19700101 987654321 seconds" +"%Y-%m-%d %H:%m:%S"
2001-04-19 04:04:21
#apache格式转换:
[root@CncLucZK ~]# date -d "Oct 27, 2022 12:00:37 AM" +"%Y-%m-%d %H:%M:%S"
2022-10-27 00:00:37
#格式转换后时间游走:
[root@CncLucZK ~]# date -d "Oct 27, 2022 12:00:37 AM 2 year" +"%Y-%m-%d %H:%M:%S"
2024-10-27 00:00:37
  • 加减操作:
date +%Y%m%d                   //显示当天年月日
date -d "+2 day"  +%Y%m%d	   //显示后两天的日期
date -d "-2 day" +%Y%m%d       //显示前两天的日期
date -d "-1 month" +%Y%m%d     //显示上一月的日期
date -d "+1 month" +%Y%m%d     //显示下一月的日期
date -d "-1 year" +%Y%m%d      //显示前一年的日期
date -d "+1 year" +%Y%m%d      //显示下一年的日期
  • 设定时间:
date -s                        //设置当前时间,只有root权限才能设置,其他只能查看
date -s 20221027               //设置成20221027,这样会把具体时间设置成空00:00:00
date -s 01:01:01               //设置具体时间,不会对日期做更改
date -s "01:01:01 2022-10-27"  //这样可以设置全部时间
date -s "01:01:01 20221027"    //这样可以设置全部时间
date -s "2022-10-27 01:01:01"  //这样可以设置全部时间
date -s "2221027 01:01:01"     //这样可以设置全部时间
  • 有时需要检查一组命令花费的时间,举例:
#!/bin/bashstart=$(date +%s)
echo "hello linux!" >> /test/tmp.txtend=$(date +%s)
difference=$(( end - start ))
echo $difference seconds.

3.3 tr命令

  • tr命令 可以对来自标准输入的字符进行替换、压缩和删除。它可以将一组字符变成另一组字符,经常用来编写优美的单行命令,作用很强大。语法
tr(选项)(参数)
  • 选项

    • -c或——complerment:取代所有不属于第一字符集的字符;
    • -d或——delete:删除所有属于第一字符集的字符;
    • -s或–squeeze-repeats:把连续重复的字符以单独一个字符表示;
    • -t或–truncate-set1:先删除第一字符集较第二字符集多出的字符。
  • 参数:
    字符集1:指定要转换或删除的原字符集。当执行转换操作时,必须使用参数“字符集2”指定转换的目标字符集。但执行删除操作时,不需要参数“字符集2”;
    字符集2:指定要转换成的目标字符集。

#将输入字符由大写转换为小写:
echo "HELLO WORLD" | tr 'A-Z' 'a-z'
hello world
#'A-Z' 和 'a-z'都是集合,集合是可以自己制定的,例如:'ABD-}'、'bB.,'、'a-de-h'、'a-c0-9'都属于集合,集合里可以使用'\n'、'\t',可以可以使用其他ASCII字符。#使用tr删除字符:
echo "hello 123 world 456" | tr -d '0-9'
hello  world #将制表符转换为空格:
cat text | tr '\t' ' '#字符集补集,从输入文本中将不在补集中的所有字符删除:
echo aa.,a 1 b#$bb 2 c*/cc 3 ddd 4 | tr -d -c '0-9 \n'1  2  3  4
#此例中,补集中包含了数字0~9、空格和换行符\n,所以没有被删除,其他字符全部被删除了。#用tr压缩字符,可以压缩输入中重复的字符:echo "thissss is      a text linnnnnnne." | tr -s ' sn'
this is a text line.#巧妙使用tr做数字相加操作:
echo 1 2 3 4 5 6 7 8 9 | xargs -n1 | echo $[ $(tr '\n' '+') 0 ]#删除Windows文件“造成”的'^M'字符:
cat file | tr -s "\r" "\n" > new_file
或
cat file | tr -d "\r" > new_file
  • tr可以使用的字符类:
[:alnum:]:字母和数字
[:alpha:]:字母
[:cntrl:]:控制(非打印)字符
[:digit:]:数字
[:graph:]:图形字符
[:lower:]:小写字母
[:print:]:可打印字符
[:punct:]:标点符号
[:space:]:空白字符
[:upper:]:大写字母
[:xdigit:]:十六进制字符  
  • 使用方式:
tr '[:lower:]' '[:upper:]'

下一篇:Linux学习-61-Linux系统服务管理

相关内容

热门资讯

财政部在香港发行60亿元人民币... 新华社北京5月30日电 《中国证券报》30日刊发文章《财政部在香港发行60亿元人民币绿色主权债券》。...
全球顶级创作者为何齐聚上海——... 5月30日晚,2026互联网优质内容创作盛典(TOP CREATORS GALA,简称TCG)将在上...
全部卸任!百亿基金经理,刚刚发... 爆款产品基金经理宣布卸任! 5月30日,德邦基金发布公告,旗下基金经理雷涛因个人原因卸任其管理的全部...
利润腰斩也要卷AI!小米模型永... 作者 | 华卫 今日,小米宣布永久性翻新整个模型定价体系。价格调整公告称,MiMo-V2.5 系列 ...
超声电子2025年研发投入2.... 超声电子(000823)披露2025年年度报告。报告期内,公司全年研发投入达2.88亿元,同比增长0...
原创 一... 雷达财经出品 文|丁禹 编|孟帅 净利润由盈转亏、毛利率暴跌,一季度的理想汽车过得并不“舒坦”。 今...
尾盘,生变!02513,“一字... 【导读】“老登”反击,尾盘多股异动,智谱直线闪崩 中国基金报记者 泰勒 大家好啊,今天的市场,又让泰...
菊乐股份北交所IPO过会,九年... 蓝鲸新闻5月29日讯(记者 朱欣悦)5月29日,北交所上市委2026年第53次审议会议结果显示,四川...
原创 人... 2023年,联合国人口司报告:印度人口超过了中国。中国丢掉了“世界第一人口大国”的帽子,马路上娃娃车...
缓解亏损压力,消息称Meta明... IT之家 5 月 30 日消息,科技媒体 The Information 今天(5 月 30 日)发...
原创 大... " 作者丨追命 编辑丨坚果 封面来源丨Unsplash " 近日,刘强东的“兄弟论”又一次刷屏。...
美国软件股逆袭,创2001年以... Snowflake与Okta强劲财报提振情绪,市场对AI颠覆软件行业的极端悲观预期开始松动。 Sno...
原创 5... 一夜之间,黄金价格犹如经历一场惊心动魄的“踩踏”,重重跌破了4500美元/盎司的心理大关,昔日被视为...
德康农牧(02419.HK)获... 格隆汇5月29日丨根据联交所最新权益披露资料显示,2026年5月28日,德康农牧(02419.HK)...
37岁公司董事长、车手张秀军比... 每经编辑|何小桃 5月29日,2026中国环塔国际拉力赛组委会发布通告:5月26日,在2026中国...
原创 人... 观察者网报道,本周在纽约经济俱乐部的一场专题讨论会上,加拿大总理卡尼发表了一番引发广泛关注的讲话。这...
反复尿路感染别只吃消炎药 很多人尿频、尿急、尿痛一发作,就自行购买消炎药服用,症状消失就立刻停药,这是尿路感染反复发作的主要原...
原创 散... 最后再说一遍:散户对白酒、地产的理解是大错特错了…… 投资是投资,现实是现实,行业是行业,大家必须分...
从Vinexpo Asia 2... 5月26日至28日,Vinexpo Asia – Be Spirits – Be No 2026亚洲...