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

标签 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 命令中说没有这样的文件或目录。实际上这两个文件都存在。请帮忙。

最佳答案

  `"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

这很好用。

关于Linux shell 脚本复制目录中文件的最后几行以附加到另一个目录中的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26295314/

相关文章:

linux - 如果绑定(bind)到 localhost/127.0.0.1 而不是外部,OpenJDK 7 AsynchronousServerSocketChannel 仅接受 localhost

linux - 使用 pam 设置用户密码

linux - 使用循环在多个文件夹中查找今天的文件 - LINUX

linux - 期望:没有这样的变量

linux - 从 bash 在默认编辑器中打开文件

c - 内存泄漏,段错误,C

linux - 为什么这个 bash 脚本获取 http header

linux - 在 shell 脚本中,如何组合 `Rscript` 和 `Unix` 命令?

php - PHP 是否将 $$ 与 exec() 一起使用,我如何为下一个脚本保留它?

bash - 从命令行查找和替换多行文本