1

我有一个同时在 2k 服务器上运行的脚本,它在 NAS 上创建一个临时工作目录。

该脚本构建文件列表...该列表可以是 1k 文件或 1m 文件。我在列表上运行一个 for 循环以在每个文件上运行一些 grep 命令

counter=0
num_files=`wc -l $filelist`
cat $filelist| while read line; do
do_stuff_here
counter=`expr $counter+ 1`
((percent=$counter/$num_files))
##CREATE a file named "$percent".percent
done

我在想的是我可以从列表中获取文件总数( wc -l $filelist )并添加一个我在循环中增加 1 的计数器。然后我可以划分 $counter/$num_files。

这似乎可行,但我遇到的问题是我想重命名同一个文件,而不是每次都创建一个新文件。我可以在这里做什么?

我不希望它输出到标准输出/标准错误……我已经有足够的东西去这些地方了。我希望能够浏览到 WinSCP 中的子目录并快速查看每个子目录的位置。

4

1 回答 1

1

试试这个

touch 0.percent 
counter=0 
num_files=$(wc -l $filelist)
num_files=${num_files/ */}
cat $filelist| while read line; do 
do_stuff_here 
mv -f {$((counter*100/num_files)),$((++counter*100/num_files))}.percent 
done 
rm -f *.percent
于 2012-09-29T01:10:16.507 回答