Linux 在目录中重用文件名

Linux 在目录中重用文件名,linux,bash,shell,Linux,Bash,Shell,我想在创建新文件时重用特定目录中的文件夹名称。比如: cat /home/sss/features/{month}/file-* > /home/sss/features_{month}.txt 在这个命令中,我将把{month}替换为*。月份可以是任意12个月,但并非所有月份都始终存在。最终结果应为每个月的相关文件: /home/sss/features_JAN_2012.txt /home/sss/features_MAR_2012.txt /home/sss/features_NO

我想在创建新文件时重用特定目录中的文件夹名称。比如:

cat /home/sss/features/{month}/file-* > /home/sss/features_{month}.txt
在这个命令中,我将把{month}替换为*。月份可以是任意12个月,但并非所有月份都始终存在。最终结果应为每个月的相关文件:

/home/sss/features_JAN_2012.txt
/home/sss/features_MAR_2012.txt
/home/sss/features_NOV_2012.txt
在linux中有可能做到这一点吗

你怎么了

for dirname in features/*
do 
    month="$(basename "$dirname")"
    cat "$dirname"/file-* > "features-$month-2012.txt"
done

这当然是可能的。你尝试过什么吗?功能是否仅包含具有月份名称的目录?是否有其他文件匹配<代码>文件*<代码>每个月?考虑$()而不是反向…虽然这可能是因为taste…不要解析
ls
的输出,这是非常糟糕的、低效的和无用的:使用globs代替。我们不需要在月份中包含目录名variable@shaurya我不知道你那是什么意思。你试过了吗?
#!/bin/bash
BASE=/home/sss/features

for f in `ls $BASE`; do
    cat `ls $BASE/$f` > $BASE_$f.txt
done