免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3823 | 回复: 1
打印 上一主题 下一主题

shell编程:按行读取文件内容 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-08-06 18:24 |只看该作者 |倒序浏览
前提:查找 /var 下所有 .conf 文件,并把它们复制到当前用户的主目录下(当前用户为非 root 用户)
   执行了命令:
                 find /var/ -name *.conf >$HOME/a.txt

   a.txt 文件的内容格式如下:
/var/xx/xxx.conf
/var/xxxx/xx.conf
/var/xxx/xx/xxxx.conf


   怎么样实现把 a.txt 中显示的所有文件复制到主目录下?

论坛徽章:
0
2 [报告]
发表于 2009-08-08 01:07 |只看该作者
以下代码实现:
  
#! /bin/bash
#copyallfile.sh

echo
echo -n "    please enter the filename:     "                 //输入要复制的文件名
read name      
echo -n "    please enter the path:    "                       //输入要查找的路径
read path
echo
find $path -name $name &>$HOME/a.txt                  //查找并把结果保存到当前用户主目录下的 a.txt 中
echo "    finding......"
for dos in `cat $HOME/a.txt | grep ^[^f]`                //按行读取 a.txt 文件的内容,并且行不能是以 f 开头
    do
        cp $dos $HOME &                                     //复制文件且在后台运行
    done
echo
echo
echo "    already copy file:  "`(cat $HOME/a.txt |grep ^[^find]) |wc -l`           //显示共复制了多少个文件
echo "    they are:  "
cat $HOME/a.txt|grep ^[^fi]                                   //显示已复制的文件路径及文件名
echo
echo




    如果对文件没有操作权限,以上代码可能会显示一些多余的信息,比如 cp:...............................  文件没权复制的时候的信息,望高手指教!!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP