Shell-Script
循環遍歷給定子目錄中的所有文件,用循環文件命名輸出
我在某個子目錄中有數千個 *csv 文件。
有一個簡單的行內執行檔,我用它來處理這些文件,我將其通過管道傳輸到一個新文件中:
executable file1.csv standard.csv > output_file1.csv
我想創建一個 for 循環來執行此操作,而不僅僅是 for
file1.csv
,而是針對該子目錄中的所有文件。我會嘗試這樣的事情:
for file in *.csv do # run executable on "$file" and output executable $file standard.csv > output done
我認為這會起作用,但是如何命名每個輸出
output_
++$file
?.csv
此答案的原始草稿歸功於 Bruno9779。不知道為什麼它被自我刪除,因為這是一個很好的答案:
您自己已經完成了很多工作:
destinationDir="/destination/path/here/" if cd "$destinationDir"; then for file in *.csv; do # run executable on "$file" and output executable "$file" standard.csv > "${destinationDir}/output_${file}.csv" done else echo "Unable to change to working directory." fi
只要記住用變數引用文件名。