[Linux] Shell 脚本实例(超实用)
文件操作
- 为文件(test.sh)增加执行权限
chmod +x test.sh
- 列出当前文件夹下所有文件(每行输出一个)
1 #!/bin/bash
2 dir=`ls ./`
3 for i in $dir
4 do
5 echo $i
6 done
- 列出当前文件夹下所有 txt 文件(每行输出一个)
1 #!/bin/bash
2 dir=`ls ./`
3 num=0;
4 for i in $dir
5 do
6 file=$i
7 if [ ${file##*.} = txt ];then
8 echo $file
9 ((num++));
10 fi
11 done
12 echo $num

- 读取文件的前100行,另存为另一个文件(b.txt)
head -100 a.txt > b.txt
- 将当前文件夹下所有以ods开头的文件取前三行,并重命名为“原文件名_3”形式
1 #!/bin/bash
2 dir=`ls ./`
3 num=0;
4 for i in $dir
5 do
6 file=$i
7 if [ ${file%%_*} = ods ];then
8 head -3 $file > ${file%.*}_3.txt
9 ((num++));
10 fi
11 done
12 echo $num
- 删除当前目录下所有文件名中有“100”的文件
find . -name '*100*' -exec rm -rf {} \;
或:
find . -name '*100*'|xargs rm -rf;
或:(需要输入y确定)
rm *100*;
- 删除当前目录下不以100结尾的文件
rm -f `ls ./ | egrep -v "(1$)"`
-v:取反,$:结尾
- 删除当前目录下以ods开头,且不以1000.txt结尾的文件
rm -f `ls ./|egrep "(^ods)"|egrep -v "(1000.txt$)"`
- 将当前目录文件中的‘cat’改为'dog'
sed -i "s/cat/dog/g" `grep cat -rl ./`
- 将当前目录文件中的“/kkb”替换为“/root/kkb”
sed -i "s/\/kkb/\/root\/kkb/g" `grep /kkb -rl ./`
替换内容中有 / 时,需在 / 前加 \ 转义,否则会识别错误
- 将当前目录文件中的变量var1替换为变量var2
sed -i "s/$var1/$var2/g" `grep $var1 -rl ./`
注意要用双引号,否则无法识别$
变量中有 / 时,处理方法见上一条
- 将当前目录下所有 .txt 文件改为 .pdf 文件
rename .txt .pdf *
- 将当前目录下以所有形如 xx_1000.txt 的文件重命名,去掉1000
rename _1000.txt .txt *
- 将当前目录下所有 .txt 文件后缀去掉
find -name "*.txt" |for i in *;do mv $i `echo $i |sed 's/\.txt//g'`;done
或:
find -name "*.txt" |awk -F'.' '{print $1} |xargs mv {}.txt {}
参考
https://www.cnblogs.com/kex1n/p/7302528.html
https://www.cnblogs.com/chengJAVA/p/5210909.html
sed
https://www.jb51.net/article/124604.htm
http://docs.linuxtone.org/ebooks/C&CPP/c/ch32s03.html
反引号
https://www.cnblogs.com/wangshaowei/p/9142661.html
重命名
https://foofish.net/linux-rename.html
[Linux] Shell 脚本实例(超实用)的更多相关文章
- 【学习】Linux Shell脚本实例之一
1.程序流程控制实例 程序流程控制,实际上就是改变程序的执行顺序.程序在执行过程中若流程被改变,就可能导致输出不同,因此利用这一特性就能够实现程序执行结果的控制.程序流程控制可分为“选择”和“循环”这 ...
- Linux shell脚本基础学习详细介绍(完整版)二
详细介绍Linux shell脚本基础学习(五) Linux shell脚本基础前面我们在介绍Linux shell脚本的控制流程时,还有一部分内容没讲就是有关here document的内容这里继续 ...
- linux shell 脚本攻略学习20--awk命令入门详解
awk生于1977年,创始人有三个,分别为 Alfred Aho,Peter Weinberger, 和 Brian Kernighan,名称源于三个创始人的姓的首字母. 作用:处理文本文件. awk ...
- Linux shell脚本编程(三)
Linux shell脚本编程 流程控制: 循环语句:for,while,until while循环: while CONDITION; do 循环体 done 进入条件:当CONDITION为“真” ...
- Linux shell脚本编程(二)
Linux shell脚本编程(二) 练习:求100以内所有偶数之和; 使用至少三种方法实现; 示例1: #!/bin/bash # declare -i sum=0 #声明一个变量求和,初始值为0 ...
- Linux shell脚本编程(一)
Linux shell脚本编程: 守护进程,服务进程:启动?开机时自动启动: 交互式进程:shell应用程序 广义:GUI,CLI GUI: CLI: 词法分析:命令,选项,参数 内建命令: 外部命令 ...
- Linux Shell 脚本入门
linux shell 脚本格式 #!/bin/sh#..... (注释)命令...命令... 使用vi 创建完成之后需设置权限 chmod +x filename.sh 执行命令: ./filena ...
- Linux Shell脚本入门--cut命令
Linux Shell脚本入门--cut命令 cut cut 命令可以从一个文本文件或者文本流中提取文本列. cut语法 [root@www ~]# cut -d'分隔字符' -f fields &l ...
- Linux Shell脚本攻略 读书笔记
Linux Shell脚本攻略 读书笔记 这是一本小书,总共253页,但内容却很丰富,书中的示例小巧而实用,对我这样总是在shell门前徘徊的人来说真是如获至宝:最有价值的当属文本处理,对这块我单独整 ...
随机推荐
- [游记]2020/CSP - S总结
2020 / C S P − S 总 结 2020/CSP - S总结 2020/CSP−S总结 这年的 C S P CSP CSP考的不是很理想,本来稳进的 C S P − J CSP-J CSP− ...
- JavaScript深入理解-Set、Map、WeakSet和WeakMap
Set Set 对象允许储存任何类型的唯一值,无论是原始值或者是对象引用 本质:构造函数,用来生成 Set 数据结构 描述 Set 对象是值的集合,你可以按照插入的顺序迭代它的元素.Set 中的元素只 ...
- 【算法笔记】二分图与KM算法(当你试图只看蓝书学算法
前言 呜,好久没写博客了,DDL 也有好多,一不留神就轮到我了呜. 看了一眼其它同学写的博客,什么数模啊,什么 CTF 啊,什么 Python 爬虫啊,感觉自己真是越来越菜了呜. 然后在我一愁莫展之际 ...
- JDBC_01_JDBC基础概念
JDBC 基础概念 JDBC 的本质 JDBC (Java Database Connectivity) API,即Java数据库编程接口,是一组标准的Java语言中的接口和类,使用这些接口和类,Ja ...
- Day14_77_反射( newInstance() 方法)
newInstance() 方法 * 通过反射获取class类型的对象之后,可以通过该对象创建所对应的class类型的对象 * newInstance() 用来创建Class获取的类所表示的一个新实例 ...
- 群晖 创建nfs 共享文件夹 k8s 使用
1) 打开控制面板 2) 打开共享文件夹 3) 新增共享文件夹 4) 基本信息配置 2) 3) 4) 5) 点完确定,应该会退出,继续选中刚才创建的,点编辑 2) 3) 5)返回主页面,点击file ...
- Word Reversal(string)
For each list of words, output a line with each word reversed without changing the order of the word ...
- 从零开始使用git将本地项目上传到GitHub
直接进入主题 1. 注册GitHub(官网:https://github.com/),打开官网,右上角点击sign up注册按钮,进入注册界面,根据提示填写信息注册.
- 微信小程序中的自定义组件
微信小程序中的组件 前言 之前做小程序开发的时候,对于开发来说比较头疼的莫过于自定义组件了,当时官方对这方面的文档也只是寥寥几句,一笔带过而已,所以写起来真的是非常非常痛苦!! 好在微信小程序的库从 ...
- IPC$共享和其他共享(C$、D$)
目录 net use共享命令的用法 IPC$ IPC空连接 ipc$使用的端口 关闭IPC$共享 net use共享命令的用法 net use #查看连接 net share ...