文件操作

  • 为文件(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

最新文章

  1. Oracle 分页
  2. ubuntu_nfs搭建
  3. 你必须知道的指针基础-1.预备篇:搭建GCC开发环境
  4. jeecg扩展封装tag的那些事
  5. 【linux】如何将Vim打造成一个成熟的IDE
  6. javascript面向对象方式,调用属性和方法
  7. 转:Jmeter之Bean shell使用(二)
  8. matplotlib绘制三维图
  9. ValidationContext
  10. Python 第七篇:异步IO\数据库\队列\缓存
  11. 用ESP8266+android,制作自己的WIFI小车(Android 软件)
  12. 【JavaEE】企业面试问题-Java基础
  13. centos 编译安装net-snmp 5.6.2
  14. 《重构》中Tips总结
  15. sprinbcloud学习之-Failed to bind properties under 'logging.level' to java.util.Map<java.lang.String>
  16. MapperFacade自动导入失败
  17. python名片管理
  18. Introduction to Dynamic SQL
  19. 【1】【leetcode-76】 最小覆盖子串
  20. Neo4j使用Cypher查询图形数据

热门文章

  1. Redis 6.1 redis-cluster-proxy 实践说明
  2. Go Protobuf(比xml小3-10倍, 快20-100倍)
  3. Struts2(十六篇)
  4. Unity 渲染流水线 :CPU与GPU合作创造的艺术wfd
  5. Typescript进阶之路
  6. pandas(1):Pandas文件读取——read_excel()
  7. TP6学习笔记一:安装与基本配置
  8. (十四)docker exec 详解
  9. 《C标准库》学习笔记整理
  10. 《深入理解计算机系统》学习笔记整理(CSAPP 学习笔记)