内容目录

  • 一、date
  • 二、find
  • 三、awk
  • 四、cut
  • 五、if
  • 六、sort

一、date

具体的用法如下:

显示当前日期和时间

date +%Y-%m-%d\ %H:%M:%S

将日期转换为时间戳

date -d "2019-05-01 00:00:00" +%s

将时间戳转换为日期

date -d @1556668800 "+%Y-%m-%d %H:%M:%S"

计算两个日期之间的时间差

#!/bin/bashd1=$(date -d "2021-12-31" +%s)
d2=$(date +%s)
diff=$((($d1-$d2)/(60*60*24)))
echo "距离2021年底还有${diff}天"

获取当前日期的年份,月份和日份

#!/bin/bashyear=`date +%Y`
month=`date +%m`
day=`date +%d`

echo “当前日期是 y e a r 年 {year}年 year年{month}月${day}日”
获取当前时间的小时,分钟和秒钟

#!/bin/bashhour=`date +%H`
minute=`date +%M`
second=`date +%S`
echo "当前时间是${hour}时${minute}分${second}秒"

需要注意的是,在处理日期时,要根据具体的需求来调整date命令的格式和参数,才能正确地获取到所需要的时间信息。

二、find

find命令是一条强大的搜索命令,可以在指定的目录下查找符合条件的文件或目录。具体的使用方式如下:

基本用法:

选项:-name:按照文件名查找。
-type:按照文件类型查找(d:目录,f:普通文件,l:符号链接,c:字符设备,b:块设备,s:套接字)。
-user:按照文件拥有者查找。
-group:按照文件所属组查找。
-size:按照文件大小查找。可以使用“+”表示比指定大小大,使用“-”表示比指定大小小。
-mtime:按照文件修改时间查找。可以使用“+”表示比指定时间早,使用“-”表示比指定时间晚。

表达式:

-print:将查找到的文件打印出来。
-exec:将查找到的文件执行某个命令。
例如:

  1. 在当前目录下查找文件名为test.txt的文件:
find . -name test.txt
  1. 在/home目录下查找所有拥有者为user1的文件:
find /home -user user1
  1. 在当前目录下查找所有修改时间在5天以内的文件:
find . -type f -mtime -5
  1. 在当前目录下查找所有大于10M的文件:
find . -type f -size +10M
  1. 查找并删除所有以test开头的文件:
find . -name "test*" -exec rm -f {} \;

三、awk

awk是一款文本处理工具,常用于文本数据的分析和处理。它可以对文件进行逐行处理,并且支持强大的文本处理功能,包括文本查找、替换、格式化等。下面是awk用法的详细介绍:

awk语法结构
awk是一种命令行工具,其语法结构如下:

$ awk 'pattern {action}' file

其中,

pattern表示匹配模式,可以是正则表达式或字符串等。如果该模式匹配到文件中的某一行,则执行action操作。
action表示需要执行的操作,可以是输出、替换、格式化等。
awk的常用选项
除了上述语法结构外,awk还支持以下常用选项:

-F:指定输入文件的字段分隔符。
-v:设置一个变量值。
-f:从指定文件中读取awk脚本。
-i:直接修改原始文件(需要linux或unix系统支持)。

awk的常用操作
awk支持的操作非常丰富,这里列出其中一些常用的操作:

输出:使用print或printf输出文本。
替换:使用gsub或sub替换文本。
计算:支持加减乘除等数字计算。
条件语句:包括if语句、while语句等。
循环语句:包括for语句、do-while语句等。
awk的范例用法
下面是几个awk的典型用法例子:

输出文件的每一行:awk ‘{print}’ file。
输出第一列:awk ‘{print $1}’ file。
输出指定行:awk ‘NR2{print}’ file。
计算文件总行数:awk ‘END{print NR}’ file。
列分割,输出第二列:awk -F’,’ ‘{print $2}’ file。
输出一行中所有包含指定字符串的内容:awk ‘/字符串/{print $0}’ file。
替换指定行中的字符串:awk 'NR2{gsub(/oldstring/,“newstring”);print}’ file。
总的来说,awk是一款非常强大的文本处理工具,使用广泛,可以快速地对文件进行处理和转换。

四、cut

cut 命令可以用来剪切文件或标准输入中的字段,并将其写到标准输出上。以下是 cut 命令的详细用法:

命令格式

cut [选项] 文件

命令选项
选项 作用
-f 指定字段
-d 分隔符
-s 不显示没有分隔符的行
选项说明
-f 选项
-f 选项用于指定要剪切的字段。指定多个字段时,使用逗号 , 分隔。

cut -f 2,4 file.txt  # 剪切文件 file.txt 中的第 2 和第 4 个字段

如果要指定一定的字段范围,可以使用 - 符号。

cut -f 2-4 file.txt # 剪切文件 file.txt 的第 2~4 个字段

-d 选项
-d 选项用于指定字段的分隔符,默认使用制表符。

cut -d , -f 2 file.txt  # 剪切文件 file.txt 中以逗号分隔的第 2 个字段

-s 选项
-s 选项用于不显示没有分隔符的行,即只显示包含指定字段的行。

cut -s -f 2 file.txt  # 只显示包含第 2 个字段的行

五、if

if是一种条件判断语句,在shell脚本中常常用来判断某个条件是否成立,如果成立则执行其后的语句块。if语句的一般格式如下:

if [ condition ]
then
commands
fi

其中,condition是一个测试条件,可以是比较操作符(例如“-gt”表示大于)、文件测试操作符(例如“-f”表示文件存在)、逻辑操作符(例如“&&”表示与)、字符串比较操作符(例如“=”,“!=”)等。

commands是在条件成立时需要执行的一系列指令,可以是任意的shell指令或其他脚本语言指令。这些指令可以跨越多行,并以fi作为语句块的结尾。

if语句可以与else语句同时使用,即当条件不成立时需要执行另一系列指令。其一般格式如下:

if [ condition ]
then
commands
else
commands
fi

在实际编写脚本时,也可以将多个if语句和else语句结合起来,使用elif条件进行嵌套。其一般格式如下:

if [ condition1 ]
then
commands
elif [condition2 ]
then
commands
else
commands
fi

条件语句的条件可以是真假值,数字、字符串等。同时,可以用“test”命令来进行条件测试:

if test -f file.txt
then
commands
fi

实际上test命令就是[ ]命令的另一种写法。

除了使用[ ]和test命令,还可以使用其他管道和命令来进行条件判断。例如,判断某个命令的返回状态:

if grep "hello" file.txt
then
commands
fi

此处,如果grep命令在file.txt中找到了“hello”,则会返回0,条件成立,执行后续命令。

if的参数:
在Shell中使用if语句时,有以下几种参数:

在Shell中使用if语句时,有以下几种参数:[ expression ]:方括号内的表达式返回0(真)或1(假)。test expression:test命令的返回值也是0或1。[[ expression ]]:双方括号内支持更多的比较运算符(如<,>,=等)。(( expression )):双圆括号主要用于整数比较,支持算术操作符(如+,-等)。-n string:字符串不为空时返回真。-z string:字符串为空时返回真。-e file:文件存在时返回真,通常用于判断文件是否存在。-f file:文件存在且为普通文件时返回真。-d file:文件存在且为目录时返回真。-r file:文件存在且可读时返回真。-w file:文件存在且可写时返回真。-x file:文件存在且可执行时返回真。-a file:文件存在时返回真(同-e参数)。-b file:文件存在且为块设备文件时返回真。-c file:文件存在且为字符设备文件时返回真。-s file:文件存在且大小不为0时返回真。file1 -nt file2:如果file1比file2新,则返回真。file1 -ot file2:如果file1比file2旧,则返回真。expression1 -a expression2:返回真当且仅当expression1和expression2都为真。expression1 -o expression2:返回真当且仅当expression1或expression2至少有一个为真。

六、sort

sort命令是一个强大的文本排序工具。它可以将文本文件的内容按照指定的顺序排序。

sort命令的基本语法为:

sort [options] [file]

其中,options是sort命令的选项,可以用来指定排序方式、忽略大小写、按照数字大小排序等。file是要排序的文本文件。

下面是sort命令的一些常用选项:

-r:倒序排序。
-n:按照数字大小排序。
-f:忽略大小写。
-u:去除重复行。
-k n:按照第n列排序。
-t c:指定排序字段的分隔符为c。
例如,要按照数字大小排序一个文件file.txt,可以使用以下命令:

sort -n file.txt

如果需要使用默认的升序排序方式,则不需要指定-n选项。

如果想要去除重复行,则可以使用以下命令:

sort -u file.txt

若文件中的内容需要按第2列的内容进行排序,可以使用以下命令:

sort -k 2 file.txt

如果字段之间的分隔符不是默认的空格,可以使用-t选项指定分隔符,例如:

sort -t ',' -k 3 file.csv

sort命令还可以从标准输入(stdin)中读取数据。例如,在命令行中输入以下命令:

echo "b\na\nc" | sort

这条命令会将字符b、a和c按照字母顺序排序,并输出排序后的结果。

总结一下,sort命令是所学shell命令中比较常用也非常实用的一个命令,它可以通过选项的组合来满足不同场景下的排序需求。

【Linux】大数据开发中常用的shell命令相关推荐

  1. 机顶盒开发中常用adb shell 命令

    开启/关闭adb服务 adb start-server / adb kill-server adb连接设备/断开设备 adb connect ip / adb disconnect 显示连接设备状态/ ...

  2. mongodb中常用的shell命令

    mongodb中常用的shell命令 常用的shell命令 1.帮助命令 2.数据库操作命令 3.创建数据库和集合 4.集合中的文档(document)操作 5.聚集集合查询 常用的shell命令 1 ...

  3. java开发中常用的Git命令详解

    java开发中常用的Git命令详解(IDEA内如何操作) 一:写这篇文章的目的是什么? 二:使用场景在哪里? 1:当我们要使用idea去git仓库拉代码时,首先我们的idea得配置git工具 2:项目 ...

  4. 国内大数据开发中比较受欢迎的几款工具

    1.zookeeper 一个分布式的应用程序协调服务,是Hadoop和Hbase的重要组件.它是一个为分布式应用提供一致性服务的工具,让Hadoop集群里面的节点可以彼此协调.ZooKeeper现在已 ...

  5. Linux:CentOS 7中常用的基础命令

    对于学习Linux系统来说,命令是必须熟练掌握的第一个部分.Linux系统中的命令有600多个,但常用的基础命令并不多.虽然不同版本的Linux系统的命令稍有不同,但命令的语法与使用方法基本相同,因此 ...

  6. 大数据开发中HBase高级特性和rowkey设计分析

    ​​大数据培训​​学习过程中,经常会使用到HBase高级特性,在阐述HBase高级特性和热点问题处理前,首先回顾一下HBase的特点:分布式.列存储.支持实时读写.存储的数据类型都是字节数组byte[ ...

  7. 浅谈 eBay 大数据开发中的一些最佳实践

    1 前  言 eBay 智能营销部门致力于打造数据驱动的业务智能中台,以支持业务部门快速开展营销活动.目前在我们正在构建一个基于eBay站外营销的业务全渠道漏斗分析指标,涉及近十个营销渠道.数十张数据 ...

  8. 开发中常用的linux语句,MySQL开发中常用的查询语句总结

    1.查询数值型数据: SELECT * FROM tb_name WHERE sum > 100; 查询谓词:>,=,,!=,!>,!,=< 2.查询字符串 SELECT * ...

  9. AndroidTv开发中常用的adb命令

    盒子应用开发时,调试比手机上的开发比较麻烦一点,而且需要经常跟 adb 打交道,不管是 wifi 连接调试,还是应用删除安装等.这里记录一些常用的操作,方便查阅. adb wifi连接调试 方法一:需 ...

最新文章

  1. wxWidgets:使用事件
  2. 链表常见面试题二:约瑟夫环
  3. (全部)2008重磅出击——微软Windows Server 2008实战攻略系列
  4. 关注信息安全认证培训
  5. Debian安装软件是Debian GNU/Linux 5.0.4 _Lenny_ - Official amd64 DVD Binary-1 20100131-22:09
  6. 演练 打印九九乘法表
  7. 在早上起床后适当的喝一杯白开水
  8. 《数字图像处理 第三版》(冈萨雷斯)——第六章 彩色图像处理
  9. C#实现QQ自动登录器实现原理
  10. 全能扫描王(一款识别率超高的OCR识别APP)
  11. 信息系统项目管理师——范围管理论文
  12. 电脑上查看自己连接的WIFI密码
  13. 如何在多个iOSapp里共享数据
  14. 司铭宇讲师为平安人寿保险300位管理层培训《新生代员工的管理与激励》企业内训
  15. 怎么强力卸载360天擎_如何手动卸载天擎
  16. sortby降序java_lodash多列sortBy降序
  17. ESP8266 AP模式建立服务器
  18. 华夏第一都城《禹州市》
  19. 查询数据库中表名的SQL语句
  20. Android关联文件类型,使得自己app支持打开【加入到“用其它应用打开”的列表中】

热门文章

  1. 中国科学院院士徐宗本:大数据与智能制造融合应用
  2. RabbitMQ and Oslo.messaging
  3. 发现一本自学单片机很好的书,推荐一下 王云51单片机C语言教程
  4. 系统分析师论文5:论软件的系统测试及其应用
  5. Springboot 基于CXF构建WebService服务
  6. 第07篇 部署区块链浏览器(2)
  7. IMF: Interactive Multimodal Fusion Model for Link Prediction
  8. 大数据和传统数据的区别
  9. C语言基础之输出m到n之间的素数
  10. redis集群模式登陆