如何创建包含文件名前缀的目录?

时间:2014-09-23 02:45:24

标签: bash shell

我有一个简单的(虽然对我来说不简单)问题。

让我们说,我有a.txt,b.txt,c.txt。 经过重复处理后,我希望将结果保存在单独的目录中,如a_result / a_result.txt,b_result / b_result.txt,c_result / c_result.txt。

如何使用shell脚本执行此操作?

谢谢!

2 个答案:

答案 0 :(得分:3)

您可以使用${param%word}形式的参数扩展从输入文件名中删除.txt并创建相应的目录和输出文件名。

for input in a.txt b.txt c.txt; do
    stem=${input%.txt}
    mkdir -p "${stem}_result"
    some_command "$input" > "${stem}_result/${stem}_result.txt"
done

答案 1 :(得分:0)

您也可以

for let in a b c; do
    mkdir -p "$let"_result
    some_command "$let".txt > "$let"_result/"$let"_result.txt
done