shell编程小工具

cut工具(重点)

作用:cut是截取工具,用于列的截取

-c:        以字符为单位进行分割,截取
-d:        自定义分隔符,默认为制表符\t
-f:        与-d一起使用,指定截取哪个区域


sort工具(重点)

重点记住:sort、sort -nr

-u :uniq去除重复行
-r :reverse降序排列,默认是升序
-o : 将排序结果输出到文件中,类似重定向符号>
-n :以数字排序,默认是按字符排序

1.如果不加-n参数,那么是按照字符逐个的正序排序

2.sort + 文件

3.常用的组合是:

sort -n 内容:对内容按照数字进行排序

sort -nr 内容:对内容按照数字倒序排序


uniq工具(重点)

作用:去除重复,但是只去除连续的重复,间隔重复不会去除,还会保留

-i:  忽略大小写,a和A系统会认为是同一个字符
-c:  在每一行的前面显示该行在文件中出现的次数
-d:  只显示重复行

重点 -c

uniq 是对连续的内容进行去重

一般uniq -c 是和sort一起使用

sort -n 内容 | uniq -c


tee工具

-a:  追加内容

echo,主要用于输出信息到屏幕(标准输出)上

> 重定向,主要把前面命令的执行结果写入到文件中

注意: 如果不加 -a 代表 覆盖写入

提醒:一旦看到写入的时候,一定要考虑是追加还是覆盖!!!

echo "1" | tee system_status.log : 这是覆盖写入
echo "2" | tee -a system_status.log : 这是追加写入

应用场景:

① 实时监控并记录 :可以在执行系统命令时,同时将结果显示在屏幕上和记录到文件中,用于后续分析。

② 保存日志文件:在执行长时间运行的命令时,可以实时查看输出并保存为日志,方便追踪问题。

③ 结合管道使用:在复杂的管道命令中,将中间结果保存到文件中,同时继续传递给下一个命令。


diff工具

Linux 中用于比较两个文件或目录内容的工具

diff 主要用于文件比较和合并,可以生成补丁文件,以便在需要时将一个文件的修改应用到另一个文件上。

基本语法:

diff [选项] 文件1 文件2

默认情况下,diff 的输出格式为 正常格式,其符号含义如下:

  • < 表示文件1中的内容

  • > 表示文件2中的内容

  • c 表示修改(change)

  • a 表示增加(add)

diff工具主要用于(文件)和(目录) 差异比较

我们还可以借助于diff补丁功能,保证两个文件内容的高度一致!

特性-u(统一格式)-c(上下文格式)
输出简洁性更简洁,适合代码审查和版本控制更详细,适合人工阅读
上下文信息显示较少上下文行(默认 3 行)显示更多上下文行(默认 3 行)
标记符号使用 @@-/+使用 ***---
差异行标记- 表示删除,+ 表示添加! 表示差异
适用场景代码版本控制系统(如 Git)、自动化工具人工阅读、需要更多上下文信息的场景

paste工具

作用:paste 是 Linux 中用于逐行合并文件的命令行工具。它能够将多个文件的内容按行拼接,输出到标准输出或另一个文件中。与 cat 不同,paste 是将每个文件中的行拼接在一起,而不是逐文件合并。

常见选项:

-d:delimiter,自定义分隔符,默认是\t
   
-s:串行处理,非并行
   注意:这是单文件操作,将文件中以列存在的数据,变成一行数据

逐行合并:

        paste -d ','  a.txt d.txt

串行:

        paste -s d.txt

注: 可以创建两个配置文件自行演示


tr工具(重点)

tr用于字符转换,替换和删除;主要用于删除文件中控制字符或进行字符转换

主要用于字符删除与替换操作 => cpu 95% => 95,去掉%百分号

记住:

tr -d "%",用于删除某些内容,如删除%,也支持正则

tr -s ' ',用于去除重复的空格,最终保留1个空格

tr 旧内容 新内容,用于实现替换操作

基本语法

用法1:命令的执行结果交给tr处理,其中set1用于查询,set2用于转换处理
# commands | tr  'set1'  'set2'
注:'set1'要替换或处理的字符集,'set2'将字符替换为的目标字符集

用法2:tr处理的内容来自文件,记住要使用"<"标准输入
# tr  'set1'  'set2' < filename

用法3
:匹配string1进行相应操作,如删除操作
# tr options 'set1' < filename


常用选项:
-s (--squeeze-repeats): 将相邻的重复空白字符压缩成一个空白字符。'hello      world' => 'hello world'
-d (--delete): 删除输入中指定的字符。

常用正则表达式:用少量字符表示某个范围!

字符串含义
a-z匹配所有小写字母
A-Z匹配所有大写字母
0-9匹配所有数字
0-9a-zA-Z匹配所有数字与大小写字母
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值