Linux shell脚本,用于复制目录中文件的最后一行,以附加到另一个目录中的文件

时间:2014-10-10 08:43:43

标签: linux bash

我编写了下面的shell脚本来复制目录中文件的最后几行以附加到另一个目录中的文件

cd /opt/grinder/svn/IAVS/GrinderLogs/GrinderBaseLogs/Lg2Logs
GrinderLG1='rm101sys1lweb22'
GrinderLg2='rm101sys1lweb23'
fileCount=$(ls -l|wc -l)
echo $fileCount
for (( c=0; c<=$fileCount-2; c++ ))
do
      Lines=$(more $GrinderLg2"-"$c"-data.log"|wc -l)
      Lines1=`expr $Lines - 1`
      `"tail -"$Lines1"f /opt/grinder/svn/IAVS/GrinderLogs/GrinderBaseLogs/Lg2Logs/"$GrinderLg2"-"$c"-data.log>>/opt/grinder/svn/IAVS/GrinderLogs/GrinderBaseLogs/"$GrinderLG1"-"$c"-data.log"`
      #exec $command
done

当我执行这个脚本时,它在tail命令中没有说明这样的文件或目录。实际上两个文件都存在。请帮忙。

1 个答案:

答案 0 :(得分:0)

  `"tail -"$Lines1"f /opt/grinder/svn/IAVS/GrinderLogs/GrinderBaseLogs/Lg2Logs/"$GrinderLg2"-"$c"-data.log>>/opt/grinder/svn/IAVS/GrinderLogs/GrinderBaseLogs/"$GrinderLG1"-"$c"-data.log"`

更改为

  tail -"$Lines1"f /opt/grinder/svn/IAVS/GrinderLogs/GrinderBaseLogs/Lg2Logs/"$GrinderLg2"-"$c"-data.log>>/opt/grinder/svn/IAVS/GrinderLogs/GrinderBaseLogs/"$GrinderLG1"-"$c"-data.log

应该有用。


在我的设置中,我已按以下方式进行测试

#!/bin/sh
`"tail -10f filename"`

找不到错误文件名

但是

#!/bin/sh
tail -10f filename

这很好用。