使用bash脚本在目录中的每个文件上执行程序并输出到其他目录

时间:2017-08-10 03:32:37

标签: bash ubuntu

所以我对编程很新,刚刚开始研究凝聚态物理。我正在尝试编写一个bash脚本,它将在特定目录中包含.txt文件并对它们运行FFT程序,然后将新的.txt文件输出到新目录中。

文件格式总是xxmT.txt,其中xx只是millitesla中磁场的数字表示,所以像0mT.txt,5mT.txt ......等等。你可以想象,可能有数百个数据生成的文件,我希望它们是加快流程的一种方式。欢迎任何帮助,我宁愿不在终端中按文件执行此文件。

2 个答案:

答案 0 :(得分:1)

我希望这会有所帮助:

#!/bin/bash

cd "your_input_directory"
for file in *mT.txt; do
    your_FFT_program "$file" > "your_output_directory/$file"
done

答案 1 :(得分:1)

您可以将多个操作传递给find命令。在你的情况下:

find . -name "*mT.txt" -execdir YOURCOMMAND "{}" ";" -execdir mv "{}" OUTPUTDIR ";"
仅当 YOUCOMMAND 成功时才会执行

mv