在shell脚本中查找具有特定字符串的文件名

时间:2017-12-06 16:06:34

标签: bash shell unix

我正在尝试编写一个bash脚本来对一些fMRI数据进行批处理。我的问题是我无法获得与感兴趣的目录中的特定模式匹配的文件名。

我的脚本看起来像这样

#!/bin/bash

inputpath="/Volumes/External_HD/Experiments/MRI_Data"
outputpath="/Volumes/External_HD/Experiments/MRI_Data_output"

anatomical_scans=$find `$inputpath` -name *mprage

# RUN BET
bet $anatomical_scans $outputpath

echo 'Finished!!!'

我得到的唯一输出是以下错误消息

-name: command not found

我对shell脚本的定义并不熟悉,所以如果这个问题听起来微不足道,我很抱歉。 任何帮助将不胜感激。

安东尼奥

编辑::已解决

探索建议我找到了使其无错误运行的正确方法

anatomical_scans=$(find $input_path -name "*mprage*")

由于

3 个答案:

答案 0 :(得分:4)

尝试更改行

one(u) $ inputpath anatomical_scans=$find

-name *mprage

答案 1 :(得分:1)

您可以执行以下操作:

#!/bin/bash

inputpath="/Volumes/External_HD/Experiments/MRI_Data"
outputpath="/Volumes/External_HD/Experiments/MRI_Data_output"

function anatomical_scans {
    find $inputpath -name "*mprage"
}

# RUN BET
bet anatomical_scans $outputpath

echo "Finished!!!"

答案 2 :(得分:1)

您可以尝试以下操作,希望它可以提供帮助。

#!/bin/bash

inputpath="/Volumes/External_HD/Experiments/MRI_Data"
outputpath="/Volumes/External_HD/Experiments/MRI_Data_output"

anatomical_scans=`find $inputpath -name '*mprage'`

# RUN BET
bet $anatomical_scans $outputpath

echo 'Finished!!!'