Linux Shell实例

news/2024/9/23 6:32:16/

1.查空行

答案:

awk '/^$/{print NR}' file1.txt#awk:一个强大的文本分析工具,把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行分析#处理。
#1)基本语法
#awk [选项参数]'/pattern1/{action1} /pattern2/{action2}...' filename
#pattern:表示awk在数据中查找的内容,就是匹配模式
#action:在找到匹配内容时所执行的一系列命令# ^$:以^开头,以$结束,中间即为空# NR:行号

运行结果:

2.求一列的和

使用Linux命令计算第二列的和并输出

awk '{sum+=$2} END{print "求和:"sum}' file2.txt# $2表示第二列,因为awk默认以空格拆分

运行结果:

3.检查文件是否存在

问题:Shell脚本里如何检查一个文件是否存在?如果不存在该如何处理?

答案:

if [ -e /root/file2.txt ];then echo "文件存在";else echo "文件不存在"; fi
# -e:文件存在

运行结果:

4.数字排序

答案:

sort -n file33.txt
#sort:sort命令是在linux里非常有用,它将文件进行排序,并将排序结果标准输出。
#-n:依照数值的大小排序(从小到大)

运行结果:

5.搜索指定目录下文件内容

grep -r "123" /root | cut -d ":" -f 1| sort -u
#grep:查找文件内容
#-r:搜索文件内容
#cut -d ":" -f 1:以:为分隔符进行分割,并提取第一列
#sort -u:去重复

运行结果:

6.批量生成文件名

#!/bin/bash #解析器类型
read -t 30 -p“请输入创建文件的数目:"ntest=$(echo $n | sed 's/[0-9]//g')
#检测非数字输入
#将n给sed解析,将0-9所有数字替换为空字符串
#'s/[0-9]//g':是sed的替换命令,s代表替换操作,[0-9]是一个正则表达式,匹配任何单个数字字符,//表##示将匹配到的内容替换为空(即删除),g代表全局替换,意味着每一行>中,所有匹配到的实例都会被替换。
#检测替换为后的字符串是否为空0,如果为0,则输入的都是数字,否则输入的有非数字 if [ -n "$n"-a -z "$test"]   #检测输入的字符串非空且都是数字
#-n "$n”: 检测字符串长度是否不为0,不为0返回true
#-a: 并且
#-z "$test": 检测字符串长度是否为0,为0返回true thenfor((i=0;i<$n;i=i+1)) doname=$(date +%N) #返回纳秒#有了文件名,要往指定的目录里写文件[! -d ./temp ] && mkdir -p ./temp	#-d ./temp判断temp目录是否存在,! 是取反,即不存在, #mkdir -p ./temp:创建一个temp目录touch "./temp/$name" #创建文件 echo“创建 $name 成功!'done
elseecho“创建失败" exit 1 #退出
fi

’s/[0-9]//g':是sed的替换命令,s代表替换操作,[0-9]是一个正则表达式,匹配任何单个数字字符,//表示将匹配到的内容替换为空(即删除),g代表全局替换,意味着在每一行中,所有匹配到的实例都会被替换。

所以,当运行sed 's/[0-9]//g'时,它会读取输入的文本,并删除所有的数字字符。例如,如果输入文本是"abc123",输出将是"abc"

运行结果:

7.批量改名

8.批量创建用户


http://www.ppmy.cn/news/1509554.html

相关文章

火语言RPA--火语言界面应用多窗体详解

多窗体 界面应用建立时默认加载一个窗体&#xff0c;若是程序运行时需要多个窗体配合&#xff0c;在通常情况下&#xff0c;您可将多窗体绑定在UI控件事件中&#xff0c;由界面交互来打开多窗体。 本章将介绍下如何建立多窗体以及在应用中如何运用多窗体完成多种场景的设置。 …

Java | Leetcode Java题解之第335题路径交叉

题目&#xff1a; 题解&#xff1a; class Solution {public boolean isSelfCrossing(int[] distance) {int n distance.length;// 处理第 1 种情况int i 0;while (i < n && (i < 2 || distance[i] > distance[i - 2])) {i;}if (i n) {return false;}// 处…

Java--IO--字符流

一、字符流 1.1 字符流概述 字节流能读写任意类型的文件一个字符可能是一个或者多个字节组成 a一个字节床2个字节嬴3个字节 使用字节流每次读取一个字节可能会造成读取半个文字需要一种能按照个数读取数据的流–字符流 1.2 字符输入流 抽象类reader 用于读取字符流的抽象类…

干货分享|如何使用Stable Diffusion打造会说话的数字人?

数字人已不是什么新鲜名词了。在许多领域&#xff0c;尤其是媒体和娱乐领域&#xff0c;经常可以看到卡通形象的人物或逼真的虚拟主持人。在Stable Diffusion中&#xff0c;我们可以上传一段录制好的音频文件&#xff0c;然后使用SadTalker插件&#xff0c;将音频和图片相结合&…

[星瞳科技]如何用OpenMV制造一个可以追小球的云台?

材料 你需要以下东西&#xff1a; OpenMV3D打印件 (在pantilt/stl下载)pcb固定板(pantilt/eagle下载)2个微型舵机一个锂电池 连接 按照上图连接。 资料下载 主要都在github上&#xff0c;可以点击查看下载&#xff1a;OpenMV-Pan-Tilt/pan-tilt/src at master SingTown/…

海山数据库(He3DB)源码详解:AbortTransaction函数

文章目录 海山数据库(He3DB)源码详解&#xff1a;AbortTransaction函数1. 执行条件2. 执行过程2.1 获取当前状态&#xff1a;2.2 开始事务资源清理&#xff1a;2.3 完成事务资源清理 作者介绍 海山数据库(He3DB)源码详解&#xff1a;AbortTransaction函数 本文介绍了事务提交过…

【计算机网络】CIDR无分类编址知识学习

文章目录 1、CIDR引入的背景2、CIDR是什么&#xff1f;2.1 CIDR的2个特点2.2 CIDR斜线记法注意区分细节2.3 路由聚合or构成超网2.4 CIDR里面的掩码&#xff08;不是叫子网掩码)2.5 CIDR几种等效的记法形式2.6 对于”网络前缀“不是8的整数倍时候&#xff0c;要多加注意 3、CIDR…

《Unified Visual Relationship Detection with Vision and Language Models》ICCV2023

摘要 这项工作集中在训练单一的视觉关系检测器&#xff08;VRD&#xff09;&#xff0c;该检测器可以预测来自多个数据集的标签空间的并集。由于不同数据集的标签体系不一致&#xff0c;合并标签是一个挑战。作者提出了 UniVRD&#xff0c;一种新颖的自下而上的方法&#xff0…