当前位置: 首页 > 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.批量创建用户

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • Python 通过UDP传输超过64k的信息
  • 深度学习入门案例:运用神经网络实现价格分类
  • linux中守护进程管理方式
  • 【学习笔记】Day 14
  • 和等于 k 的最长子数组长度(LeetCode)
  • MySQL windows版本安装
  • How do you implement OpenAI GPT-3 Api Client in PHP?
  • 古希腊掌管类型转换的神 boost::lexical_cast
  • 掌握Objective-C中的NSSpellServer:拼写检查的艺术
  • MySQL 8
  • QT、C++简单界面设计
  • js实现图片以鼠标为中心滚轮缩放-vue
  • 深度学习中常用概念总结
  • 一次sql请求,返回分页数据和总条数
  • 【深度学习】【语音TTS】GPT-SoVITS v2 实战,训练一个人的音色,Docker镜像
  • 网络传输文件的问题
  • 9月CHINA-PUB-OPENDAY技术沙龙——IPHONE
  • 【140天】尚学堂高淇Java300集视频精华笔记(86-87)
  • 【159天】尚学堂高琪Java300集视频精华笔记(128)
  • 4. 路由到控制器 - Laravel从零开始教程
  • canvas 绘制双线技巧
  • ES6 ...操作符
  • httpie使用详解
  • Java编程基础24——递归练习
  • Java多线程(4):使用线程池执行定时任务
  • Laravel5.4 Queues队列学习
  • Netty+SpringBoot+FastDFS+Html5实现聊天App(六)
  • React as a UI Runtime(五、列表)
  • Vue 动态创建 component
  • 不发不行!Netty集成文字图片聊天室外加TCP/IP软硬件通信
  • 关于 Linux 进程的 UID、EUID、GID 和 EGID
  • 前端性能优化--懒加载和预加载
  • 智能合约Solidity教程-事件和日志(一)
  • 东超科技获得千万级Pre-A轮融资,投资方为中科创星 ...
  • ​DB-Engines 11月数据库排名:PostgreSQL坐稳同期涨幅榜冠军宝座
  • ​草莓熊python turtle绘图代码(玫瑰花版)附源代码
  • # 详解 JS 中的事件循环、宏/微任务、Primise对象、定时器函数,以及其在工作中的应用和注意事项
  • #NOIP 2014# day.2 T2 寻找道路
  • (4)通过调用hadoop的java api实现本地文件上传到hadoop文件系统上
  • (html5)在移动端input输入搜索项后 输入法下面为什么不想百度那样出现前往? 而我的出现的是换行...
  • (PyTorch)TCN和RNN/LSTM/GRU结合实现时间序列预测
  • (超详细)语音信号处理之特征提取
  • (第一天)包装对象、作用域、创建对象
  • (附源码)基于ssm的模具配件账单管理系统 毕业设计 081848
  • (三)mysql_MYSQL(三)
  • (算法)大数的进制转换
  • .ai域名是什么后缀?
  • .NET / MSBuild 扩展编译时什么时候用 BeforeTargets / AfterTargets 什么时候用 DependsOnTargets?
  • .NET 6 在已知拓扑路径的情况下使用 Dijkstra,A*算法搜索最短路径
  • .NET CLR Hosting 简介
  • .NET Core实战项目之CMS 第十二章 开发篇-Dapper封装CURD及仓储代码生成器实现
  • @NotNull、@NotEmpty 和 @NotBlank 区别
  • @Value获取值和@ConfigurationProperties获取值用法及比较(springboot)
  • [17]JAVAEE-HTTP协议
  • [20150321]索引空块的问题.txt