我编写了以下 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/