文件操作
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
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*;
rm -f `ls ./ | egrep -v "(1$)"`
-v:取反,$:结尾
rm -f `ls ./|egrep "(^ods)"|egrep -v "(1000.txt$)"`
sed -i "s/cat/dog/g" `grep cat -rl ./`
sed -i "s/\/kkb/\/root\/kkb/g" `grep /kkb -rl ./`
替换内容中有 / 时,需在 / 前加 \ 转义,否则会识别错误
sed -i "s/$var1/$var2/g" `grep $var1 -rl ./`
注意要用双引号,否则无法识别$
变量中有 / 时,处理方法见上一条
rename .txt .pdf *
rename _1000.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
重命名
手机扫一扫
移动阅读更方便
你可能感兴趣的文章