我有,例如10個數據文件I01.txt
一個文件夾,...,I10.txt
。每個文件,使用命令/a.out
執行時,給了我五個輸出文件,即f1.txt
,f2.txt
,... f5.txt
。重定向結果的文件不同的變量文件名
我寫了一個簡單的bash程序中使用的命令
./ cosima_peaks_444_temp_muuttuva -args > $counter-res.txt.
以此來執行所有的文件,並保存在屏幕上打印輸出到一個變量文件,我能夠節省屏幕上的輸出到文件。但是五個文件f1
到f5
被更改爲存儲最後文件運行的結果,在這種情況下爲I10
,並且前九個文件的結果丟失。
所以我想每個I*.txt
文件的輸出(f1
... f5
)保存到AA不同的文件,例如,當程序執行I01.txt
,使用./a.out
它存儲的文件的輸出
f1>var1-f1.txt , f2>var1-f2.txt... f5 > var1-f5.txt
然後重複相同的I02
(f1>var2-f1.txt
...)。
#!/bin/bash
# echo "for looping over all the .txt files"
echo -e "Enter the name of the file or q to quit "
read dir
if [[ $dir = q ]]
then
exit
fi
filename="$dir*.txt"
counter=0
if [[ $dir == I ]]
then
for f in $filename ; do
echo "output of $filename"
((counter ++))
./cosima_peaks_444_temp_muuttuva $f -m202.75 -c1 -ng0.5 -a0.0 -b1.0 -e1.0 -lg > $counter-res.txt
echo "counter $counter"
done
fi
你需要改變'a.out',我以爲是用C寫它不應該是一個困難的工作,以改變C,但是除此之外,bash無法判斷C程序在任何時候正在處理哪個文件。 – cdarke
是'a.out'簡單地讀取目錄的內容(例如用'opendir'或'scandir'),或者你是否傳遞''l01.txt','l02.txt'等等作爲參數該程序? –
這裏./cosima_peaks_444_muuttuva是a.out。並且可執行文件是用Fortran 90編寫的。 –