当前位置: 首页 > news >正文

Linux Shell实例

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.lryc.cn/news/424770.html

相关文章:

  • Linux~MySQL数据库具体操作
  • Unity WebGL平台Hybrid Generate All报错undefined symbol sendfile
  • Java高级Day28-多线程
  • 0003 保险的会计要素及其计量属性
  • Swift版本控制的艺术:掌握代码演化的魔杖
  • 学习实战:生活垃圾自动识别与分类系统的实现
  • Swift模块化构建:解锁代码重用的金钥匙
  • 【计算机网络】CIDR无分类编址知识学习
  • JavaScript 详解
  • 运维实践01-安装OpenJDK
  • Windows下,C# 通过FastDDS高效通信
  • 【模型】ResNet
  • Objective-C中NSExpression与NSPredicate的协同艺术
  • Apache-JMeter压测工具教程
  • Spring Boot集成selenium实现自动化测试
  • 基于phpstudy对cmseasy5.5进行漏洞复现
  • 【c++】 C语言的输入与输出C++的IO流STL空间配置器
  • 基于Faster-RCNN的停车场空位检测,支持图像和视频检测(pytorch框架)【python源码+UI界面+功能源码详解】
  • Vue3从零开始——带你轻松掌握组件的基本操作
  • 【MySQL 03】库的操作 (带思维导图)
  • SpringBoot-读取配置文件内容
  • springboot整合springmvc
  • el-cascader多选的父子关联和父子不关联功能
  • #Datawhale AI夏令营第4期#多模态大模型Task2
  • LeetCode 热题100-1
  • 表现良好的最长时间段(LeetCode)
  • 【性能优化】DNS解析优化
  • 【剑指 offer】合并链表
  • 红酒与节日装饰:打造节日氛围的需备品
  • Element Plus的el-carousel走马灯平铺多张图片