好的,这就是我想要做的 - 我有一堆名为:
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
...解决了这个问题。