用脚本提取一个文件夹内的某些文件,并且将文件复制到制定目录下

最近拿到了一个会议的论文集合,可是这些论文集合里面又没有标题,我需要从中提取自己感兴趣的部分论文,一共好几百篇论文,我又不能一个个去找,所以只能自己写个脚本去找了。
有的论文下载下来会有空格,所以需要先把空格处理掉,批量处理空格的办法如下:

#将dir目录下面的所有文件名中的空格去掉
rename 's/ //g' dir/*

首先,先用grep查找出符合条件的论文,然后把这些论文的题目提取到一个文件里面。
这里用如下命名就可以解决

grep -r "SLAM" . | cut -f 1 -d ":" > slamfiles

然后,我打开文件发现这里面还有几个中文,这我就比较尴尬了,我又得把这些中文删去,所以又找了sed命令。我这里是有“匹配到二进制文件”这八个字,然后加一个空格,所以这里我用如下去名去删除没一行的前9个字符:

sed -i 's/.........//' slamfiles

这样我就得到了只有文件名的一个文件。这就好处理了,直接用cut命令就可以了,用一个循环。具体如下:

#!/bin/bash  
cat slamfiles | while read line  
do  
        filename=`basename $line`;  
        echo $filename    
        cp $line /home/fangyu/ros/slam/$filename  
done 

这样就复制到了我指定的文件夹下面了。
整个脚本代码如下:

#!/bin/bash  
grep -r "SLAM" . | cut -f 1 -d ":" > slamfiles
sed -i 's/.........//' slamfiles
cat slamfiles | while read line  
do  
        filename=`basename $line`;  
        echo $filename    
        cp $line /home/fangyu/ros/slam/$filename  
done 
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值