迭代提取目录中的文件并使用参数对文件运行 exe

迭代提取目录中的文件并使用参数对文件运行 exe

好的,这就是我想要做的 - 我有一堆名为:

newnslog.0.tar.gz
newnslog.1.tar.gz
newnslog.2.tar.gz 
newnslog.3.tar.gz
newnslog.4.tar.gz
.
.
.

提取每个文件后,我想迭代该目录中的所有文件,并对文件中的数据运行 exe。

#extract:
tar -xzf newnslog.58.tar.gz
#cd:
cd newnslog.59 < yes the filename in the archive may be 1 more or less or the same as it is a continuation
#ls:
newnslog.ppe.0  newnslog.ppe.1  newnslog.ppe.2
#execute nsc2e with parameters against each file:
# ../nsc2e -c /netscaler/nsconmsg -K newnslog.ppe.0 -f ../nsc2e.conf

我正在尝试 for - do 循环,但我一定做错了什么:

root@VPX-13# for f in *; do '../nsc2e -c /netscaler/nsconmsg -K "$f" -f ../ns2ce.conf'; done
-bash: ../nsc2e -c /netscaler/nsconmsg -K "$f" -f ../ns2ce.conf: No such file or directory
-bash: ../nsc2e -c /netscaler/nsconmsg -K "$f" -f ../ns2ce.conf: No such file or directory
-bash: ../nsc2e -c /netscaler/nsconmsg -K "$f" -f ../ns2ce.conf: No such file or directory

我也知道必须有一种简化的方法来完成包括提取在内的所有事情 - 例如:

find newnslog* -prune -type d | while IFS= read -r d; do 
    cd "$d"
    for f in *; do '../nsc2e -c /netscaler/nsconmsg -K "$f" -f ../ns2ce.conf'; done
done

答案1

按照以下方式删除命令周围的引号伊尔卡丘的评论:

for f in *; do ../nsc2e -c /netscaler/nsconmsg -K "$f" -f ../ns2ce.conf; done

...解决了这个问题。

相关内容