连接与Bash中的字符串匹配的文件

时间:2017-12-13 14:51:55

标签: bash cat

我有两个目录(辅助因子和设置),我需要连接与其名称上的字符串匹配的文件。例如,对于包含" aloha"的文件名。和" boo"我想这样做:

file-c1

我一直在测试一些循环,但无法正确使用它:

cat cofactors/aloha_12345.txt set/aloha_clean.txt >> aloha_12345.txt
cat cofactors/boo_5675.txt set/boo_7890.txt >> boo_5675.txt

1 个答案:

答案 0 :(得分:3)

也许这个算法可以提供帮助:

  • 代表$file
  • 中的每个cofactors
  • 在第一个prefix
  • 之前获取文件名的_
  • 将文件和set/${prefix}_*连接到$file

像这样:

shopt -s nullglob

for f in cofactors/*; do
    basename=${f##*/}
    prefix=${basename%%_*}
    cat "$f" "set/${prefix}_"* > "$basename"
done

(感谢@socowi进行了改进!)