经典命令--sort、uniq、tr、cut等

news2024/12/25 9:17:22

目录

一:sort--排列工具

1.sort命令介绍

2.sort命令常用选项

3.sort命令事例

二: uniq--去重工具

1.uniq命令介绍

2.uniq命令常用选项

3.uniq命令事例

 4.筛选出重复3次的ip

 5.将超过3次登录失败的用户加入黑名单

三:tr-- 替换工具

1.tr命令介绍

2.tr命令常用选项

3.tr命令事例

(1)替换字符

 (2)替换成特殊字符

 (3)对字符去重

(4)删除字符

 四:cut--截取工具

1.cut命令介绍

 2.cut命令常用选项

3.cut命令事例

 五:split--拆分工具

1.split命令介绍

2.split命令常用选项

3.split命令事例

 六:patse-合并工具

1.patse命令

2.patse命令事例

 七:eval--扫描工具

1.eval命令介绍

2.eval命令事例

(1)事例1

 (2)事例2

(3)事例3 


一:sort--排列工具

1.sort命令介绍

以行为单位对文件内容进行排序,也可以根据不同的数据类型来排序。比较原则是从首字符向后,依次按ASCII码值进行比较,最后将他们按升序输出。

格式:

sort [选项] 参数
cat 文件名 | sort 选项

2.sort命令常用选项

-n按照数字进行排序
-r反向排序
-u等同于uniq,表示相同的数据仅显示一行
-t指定字段分隔符,默认使用【Tab】键分割
-k指定排序字段
-o  <输出文件>将排序后的结果转存至指定文件
-f忽略大小写,会将小写字母都转换为大写字母来进行比较
-b忽略每行前面的空格

3.sort命令事例

二: uniq--去重工具

1.uniq命令介绍

用于报告或者忽略文件内连续的重复行,常与sort命令结合使用

格式:
uniq [选项] 参数
cat file | uniq 选项

2.uniq命令常用选项

-c进行计数,并删除文件中重复出现的行
-d

仅显示连续的重复行

-u仅显示出现一次的行

3.uniq命令事例

 4.筛选出重复3次的ip

[root@localhost ~]# vim a1.sh

#!/bin/bash

#将test内容以'.'分割的第4部分排序,并删除重复的内容输出到指定文件
cat test | sort -n -t '.' -k4 | uniq -c > ./iplist.txt

IFSB=$IFS        #对IFS进行备份
IFS=$'\n'        #重新赋值,允许识别换行符

for i in $(cat ./iplist.txt)
do
   num=$(echo $i | awk '{print $1}')     #定义文件内容的第1部分为新变量
   if [ $num -eq 3 ];then                #如果变量等于3
      echo $i | awk '{print $2}'         #输出变量内容的第2部分
   fi
done

IFS=$IFSB                                #将IFS复原

 

 5.将超过3次登录失败的用户加入黑名单

[root@localhost ~]# vim heimd.sh
#!/bin/bash

#将查出来的信息删除重复的,保存到指定文件
cat /var/log/secure | grep 'Failed password' | awk '{print $11}' | uniq -c > ./hei.txt

IFSB=$IFS
IFS=$'\n'

for i in $(cat hei.txt)
do
   num=$(echo $i | awk '{print $1}')             #将查找出来的第一位赋值一个变量
   if [ $num -gt 3 ];then                        #如果变量大于3
     IP=$(echo $i | awk '{print $2}')            #将第二位赋值一个变量
     echo "sshd:$IP" >> /etc/hosts.deny          #输出指定信息到黑名单
   fi
done

IFS=$IFSB

三:tr-- 替换工具

1.tr命令介绍

用来对来自标准输入的字符进行替换、压缩、和删除

格式:  tr [选项] [参数]

2.tr命令常用选项

-c保留字符集1的字符,其他字符(包括换行符\n)用字符集2替换
-d删除所有属于字符集1的字符
-s将重复出现的字符串压缩为一个字符;用字符集2 替换 字符集1
-t字符集2 替换 字符集1,不加选项同结果

3.tr命令事例

(1)替换字符

 (2)替换成特殊字符

 (3)对字符去重

(4)删除字符

 四:cut--截取工具

1.cut命令介绍

显示行中的指定部分,删除文件中的指定字段

格式:
cut 参数
cut 文件 | cut 选项 

 2.cut命令常用选项

-f通过指定哪一个字段进行提取。cut命令使用“TAB”作为默认的字段分隔符
-d“TAB”是默认的分隔符,使用次选项可以更改为其他的分隔符
--complement此选项用于排除所指定的字段
--output-delimiter更改输出内容的分隔符

3.cut命令事例

 五:split--拆分工具

1.split命令介绍

将一个大的文件分成若干小文件

格式:split 选项 参数 原始文件 拆分后文件名前缀

2.split命令常用选项

-l以行数拆分
-b以大小拆分

3.split命令事例

 六:patse-合并工具

1.patse命令

将不同的文件以列进行合并

格式:
 
paste -d ':' 文件名 文件名:以冒号为分割符,合并文件
paste -s   文件名 文件名 :按行合并文件

2.patse命令事例

 ​​​​​​​

 七:eval--扫描工具

1.eval命令介绍

命令字前加上eval时,shell会在执行命令前扫描它两次。eval命令将首先会先扫描命令行进行所有的置换,然后再执行该命令。改命令使用于哪些一次扫描无法实现其功能的变量。该命令对变量进行两次扫描。

2.eval命令事例

(1)事例1

 (2)事例2

(3)事例3 

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/514463.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

10个前端开发者务必知道的JavaScript 技巧

前言 过去&#xff0c;我写了很多垃圾代码&#xff0c;现在看起来很糟糕。 当我再次看到那些代码片段时&#xff0c;我甚至怀疑自己是否适合做程序员。 所以&#xff0c;这里有 10 个我总结的JavaScript 技巧&#xff0c;可以帮助你避免编写我曾经做过的那种垃圾代码。 Prom…

提取每个汉字的首字母

1&#xff1a;在项目 POM 中 引入 汉字拼音转换JAR包 ​​​​​<dependency> <groupId>com.belerweb</groupId> <artifactId>pinyin4j</artifactId> <version>2.5.1</version> </dependency> 2:工具类 public…

Vue项目修改页面标签

Vue项目修改页面标签 1、在 Vue CLI 创建的项目中&#xff0c;可以通过修改 public/index.html 文件来改变网页标题。 2、在 Element UI 中&#xff0c;可以通过修改 document.title 属性来改变页面的标题。以下是一个示例代码&#xff1a; export default {mounted() {// 修改…

Android 检查网络状态和监听网络状态变化

此篇存在的主要意义在于解决用户使用app中网络状态发生了变化&#xff0c;需要我们去动态监听网络连接状态&#xff08;有网、无网&#xff09;、网络类型 &#xff08;包括wifi、移动网络 -> 3G、4G等等&#xff09; 文章目录 门前授课具体实现异常场景兴趣扩展 门前授课 …

设备产线运维合集丨图扑数字孪生流水线,提升产品装配自动化效率

前言 图扑软件基于 HTML5&#xff08;Canvas/WebGL/WebVR&#xff09;标准的 Web 技术&#xff0c;满足了工业物联网跨平台云端化部署实施的需求&#xff0c;以低代码的形式自由构建三维数字孪生、大屏可视化、工业组态等等。从 SDK 组件库&#xff0c;到 2D 和 3D 编辑&#…

类加载器和双亲委派模型

类加载机制的第一步就是“加载”&#xff0c;即将Class文件获取二进制字节流并加载到方法区中 这个“加载”动作是放在JVM 之外去实现的&#xff0c;能够让应用程序来决定如何获取所需要的类 类和类加载器 对于任意一个类&#xff0c;都必须由加载它的类加载器和这个类本身一…

数字藏品的价值和意义

2022年以来&#xff0c;数字藏品概念在国内火热起来。从年初的《关于防范 NFT相关金融风险的倡议》到8月份央行数字货币 DCEP的正式面世&#xff0c;从中国香港首个“NFT”艺术品在香港拍卖市场成交到国内多家互联网大厂推出数字藏品平台&#xff0c;越来越多的企业开始试水数字…

Spring Cloud Alibaba--Nacos服务注册和配置中心

文章目录 一、什么是Nacos1.1、Nacos的由来1.2、Nacos的特性1.3、Nacos的下载和启动 二、Nacos服务注册2.1、代码示例2.2、各种注册中心的比较CAP定理多个注册中心比较 三、Nacos配置中心3.1、Nacos配置管理3.2、代码示例3.3、多环境多项目管理3.3.1、命名空间3.3.2、Group分组…

递归到动态规划:空间压缩技巧-纸币问题的有限张数

这个题是我们纸币问题的第三题 题目大意&#xff1a; arr是货币数组&#xff0c;其中的值都是正数。再给定一个正数aim。 每个值都认为是一张货币&#xff0c; 认为值相同的货币没有任何不同&#xff0c; 返回组成aim的方法数 例如&#xff1a;arr {1,2,1,1,2,1,2}&#xff0…

【C】模拟实现atoi,atof函数

目录 atoi函数 atof函数 模拟实现atoi&#xff0c;atof函数 1、atoi模拟实现 2、atof模拟实现 3、测试案例代码 atoi函数 atoi函数是将字符串转换成整数 函数头文件&#xff1a;#include <stdlib.h> 函数原型&#xff1a;int atoi(const char *str); 参数&…

利用结构相似性做单细胞多模态分析

多模态单细胞测序技术从多层基因组数据中提供了丰富的细胞异质性信息。然而&#xff0c;在没有正确消除模态偏差的情况下去分析联合空间&#xff0c;往往会得到比单模态分析更差的聚类结果。如何有效利用多组学额外信息来描绘细胞状态并识别有意义的信号仍然是一个重大的挑战。…

华为 VOS 移植到 TDA4VM/VH 芯片的 TI RTOS SDK 时的 bug 修复笔记

请从官网下载 TD4VM 技术参考手册&#xff0c;地址如下&#xff1a; TDA4VM 技术参考手册地址 VOS 作为静态库移植到TDA4VM/VH 芯片的 TI RTOS SDK 中 VOS 移植到 mcusw/mcal_drv/mcal/vos&#xff0c;如下&#xff1a; vos 测试应用 在 mcusw/mcuss_demos/vos_test_app …

Shell脚本之正则表达式

目录 一、正则表达式的介绍 1&#xff09;正则表达式的组成 2&#xff09;正则表达式和通配符的区别 二、基础正则表达式 1&#xff09;转义字符的运用 将特殊含义的字符转换为普通字符的含义 将普通字符转换为特殊作用的字符 2&#xff09;基础正则表达式实际应用 查…

C++ | 结构体及大小计算

C结构体及大小计算 文章目录 C结构体及大小计算struct 和 class 区别字节对齐默认对齐方式 位域使用#pragma pack(n)结构体中有结构体Reference struct 和 class 区别 结构体&#xff08;struct&#xff09;和类&#xff08;class&#xff09;有点像&#xff0c;均是定义一个数…

Activi7工作流经典实战(附:常用流程流转代码片段)

一、Activiti7介绍 Activiti正是目前使用最为广泛的开源工作流引擎。Activiti的官网地址是 https:// www.activiti.org 历经6.x和5.x两个大的版本。 1. Activiti工作流引擎 他可以将业务系统中复杂的业务流程抽取出来&#xff0c;使用专门的建模语言BPMN2.0进行定义。业务流…

彻底搞清楚Handler,再也不怕面试官

Handler Handler可以说是Android框架里面很精髓的一部分了&#xff0c;面试必问&#xff0c;用的也最多 Handler是什么&#xff1f; 提到Handler大家一定不陌生&#xff0c;我们经常用它来切换线程&#xff0c;或者是说做一些延时任务等等。最常用的地方可能就是在网络请求中…

Flask全栈解决小问题系列(1)搭建一个bootstrap开发框架

时间不多,闲话少说,实践出真知! 1.目的:为实现FlaskBootStrap开发效果,搞个开发测试项目 2.搭建项目 1)建个test-bootstrap项目,项目目录结构如下: 2)appstart.py内容如下: import json from flask import Flask,redirect,render_templateapp Flask("__main__") …

00后太卷了上班还没3年,跳到我们公司起薪18k....

都说00后已经躺平了&#xff0c;但是有一说一&#xff0c;该卷的还是卷。前段时间我们部门就来了个00后&#xff0c;工作都还没三年&#xff0c;跳到我们公司起薪18K&#xff0c;都快接近我了。 后来才知道人家是个卷王&#xff0c;从早干到晚就差搬张床到工位睡觉了。最近和他…

Yolov5/Yolov7改进:小目标到大目标一网打尽,轻骨干重Neck的轻量级目标检测器GiraffeDet

1.GiraffeDet介绍 论文:https://arxiv.org/abs/2202.04256 🏆🏆🏆🏆🏆🏆Yolov5/Yolov7魔术师🏆🏆🏆🏆🏆🏆 ✨✨✨魔改网络、复现前沿论文,组合优化创新 🚀🚀🚀小目标、遮挡物、难样本性能提升 🍉🍉🍉定期更新不同数据集涨点情况 本文是…

gitlab上传大文件限制问题解决

gitlab上传大文件限制问题解决 前景提要&#xff1a; 今天收到同事反馈遇到gitlab 上传大文件时候报如下错误 error: RPC failed; result22, HTTP code 413 fatal: The remote end hung up unexpectedly fatal: The remote end hung up unexpectedly从报错来看是因为文件大…