shell相关的批量操作

1、批量删掉文件名后缀的简单方法
name=ls #定义列表
for i in $name #取值
do
mv $i ${i%.} #删除内容(%)后的.
done
下面是网上的原文
要思路简单易于理解的话,可以这样:
1234 for file in find . -name "*.txt"do    mv $file ${file%.}done
${file%.
} 是bash中字符串处理“掐头去尾法”中的去尾法。
2、循环中单个过程引用多变量
A=(cat /root/dev.txt)
B=(cat /root/mount.txt)
for ((i=0;i<3;i++))
do
echo ${A[$i]} ${B[$i]}
done
3、定义整数列表
#!/bin/bash
for i in {1..10} #1
#for((i=1;i<=10;i++)) #2
#for i in seq 1 10 #3
do
echo $i
done
4、在指定行的前/后插入指定内容

5、匹配行添加注释
描述:sed -i '/匹配条件1/s/位置:开头^结尾$或者再次匹配/替换内容或者说要添加的内容/' 文本文件
sed -i '1,4 s/^/#/' test.sh #指定1-4行行首添加#
sed -i '1,4 s/^#//' test.sh #指定1-4行删除行首内容#
sed -i '/grep/s/^/#/' test.sh #匹配关键字在其行首添加#
sed -i '/grep/s/$/#/' test.sh #匹配关键字在其行尾添加#
sed -i '/dcits/s/proxy/tianle/' test.sh #匹配dcits关键字,再将匹配到的行中的proxy替换成tianle
sed -i '/grep/s/^#//' test.sh #去掉匹配行的行首#注释
sed -i '5,26 {/^#/d}' login2.py #匹配5-26行中开头为#的行进行删除操作

6、指定列比对后进行打印(此例子有问题)
for filename in ls -hl |grep -v ^d|awk '$5 &gt; 10k {print $9}' #查找当前目录中文件大于10k的
do
cp $filename /tmp
done










本文转自 天乐 51CTO博客,原文链接:http://blog.51cto.com/tianlegg/2054113,如需转载请自行联系原作者
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值