【Linux】大数据开发中常用的shell命令
内容目录
- 一、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:将查找到的文件执行某个命令。
例如:
- 在当前目录下查找文件名为test.txt的文件:
find . -name test.txt
- 在/home目录下查找所有拥有者为user1的文件:
find /home -user user1
- 在当前目录下查找所有修改时间在5天以内的文件:
find . -type f -mtime -5
- 在当前目录下查找所有大于10M的文件:
find . -type f -size +10M
- 查找并删除所有以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命令相关推荐
- 机顶盒开发中常用adb shell 命令
开启/关闭adb服务 adb start-server / adb kill-server adb连接设备/断开设备 adb connect ip / adb disconnect 显示连接设备状态/ ...
- mongodb中常用的shell命令
mongodb中常用的shell命令 常用的shell命令 1.帮助命令 2.数据库操作命令 3.创建数据库和集合 4.集合中的文档(document)操作 5.聚集集合查询 常用的shell命令 1 ...
- java开发中常用的Git命令详解
java开发中常用的Git命令详解(IDEA内如何操作) 一:写这篇文章的目的是什么? 二:使用场景在哪里? 1:当我们要使用idea去git仓库拉代码时,首先我们的idea得配置git工具 2:项目 ...
- 国内大数据开发中比较受欢迎的几款工具
1.zookeeper 一个分布式的应用程序协调服务,是Hadoop和Hbase的重要组件.它是一个为分布式应用提供一致性服务的工具,让Hadoop集群里面的节点可以彼此协调.ZooKeeper现在已 ...
- Linux:CentOS 7中常用的基础命令
对于学习Linux系统来说,命令是必须熟练掌握的第一个部分.Linux系统中的命令有600多个,但常用的基础命令并不多.虽然不同版本的Linux系统的命令稍有不同,但命令的语法与使用方法基本相同,因此 ...
- 大数据开发中HBase高级特性和rowkey设计分析
大数据培训学习过程中,经常会使用到HBase高级特性,在阐述HBase高级特性和热点问题处理前,首先回顾一下HBase的特点:分布式.列存储.支持实时读写.存储的数据类型都是字节数组byte[ ...
- 浅谈 eBay 大数据开发中的一些最佳实践
1 前 言 eBay 智能营销部门致力于打造数据驱动的业务智能中台,以支持业务部门快速开展营销活动.目前在我们正在构建一个基于eBay站外营销的业务全渠道漏斗分析指标,涉及近十个营销渠道.数十张数据 ...
- 开发中常用的linux语句,MySQL开发中常用的查询语句总结
1.查询数值型数据: SELECT * FROM tb_name WHERE sum > 100; 查询谓词:>,=,,!=,!>,!,=< 2.查询字符串 SELECT * ...
- AndroidTv开发中常用的adb命令
盒子应用开发时,调试比手机上的开发比较麻烦一点,而且需要经常跟 adb 打交道,不管是 wifi 连接调试,还是应用删除安装等.这里记录一些常用的操作,方便查阅. adb wifi连接调试 方法一:需 ...
最新文章
- wxWidgets:使用事件
- 链表常见面试题二:约瑟夫环
- (全部)2008重磅出击——微软Windows Server 2008实战攻略系列
- 关注信息安全认证培训
- Debian安装软件是Debian GNU/Linux 5.0.4 _Lenny_ - Official amd64 DVD Binary-1 20100131-22:09
- 演练 打印九九乘法表
- 在早上起床后适当的喝一杯白开水
- 《数字图像处理 第三版》(冈萨雷斯)——第六章 彩色图像处理
- C#实现QQ自动登录器实现原理
- 全能扫描王(一款识别率超高的OCR识别APP)
- 信息系统项目管理师——范围管理论文
- 电脑上查看自己连接的WIFI密码
- 如何在多个iOSapp里共享数据
- 司铭宇讲师为平安人寿保险300位管理层培训《新生代员工的管理与激励》企业内训
- 怎么强力卸载360天擎_如何手动卸载天擎
- sortby降序java_lodash多列sortBy降序
- ESP8266 AP模式建立服务器
- 华夏第一都城《禹州市》
- 查询数据库中表名的SQL语句
- Android关联文件类型,使得自己app支持打开【加入到“用其它应用打开”的列表中】