提取每个子文件夹中的文本文件,并使用子文件夹名称将它们连接起来

时间:2014-10-20 16:22:21

标签: join iteration batch-processing tar cat

我在以下文件夹结构中压缩了文本文件:

~/A/1/1.faa.tgz #each tgz file has dozens of faa text files
~/A/2/2.faa.tgz
~/A/3/3.faa.tgz

我想从每个tgz文件中提取faa文件(文本),然后使用subfoldername(1,2和3)连接它们,为每个子文件夹创建一个文本文件。

我的尝试如下,但文件是在我运行脚本的文件夹中提取的:

#!/bin/bash

for FILE in ~/A/*/*.faa.tgz; do
tar -vzxf "$FILE"
done

提取faa文件后,我会使用" cat"加入他们(例如,使用cat * .faa> .txt。

提前致谢。

1 个答案:

答案 0 :(得分:0)

提取:     #!/斌/庆典

for FILE in ~/A/*/*.faa.tgz; do
    echo "$FILE"
    mkdir "`basename "$FILE"`"
    tar -vzxf "$FILE" -C "`basename "$FILE"`"
done

加入:

#!/bin/bash
for dir in ~/A/*/; do
(
    cd "$dir"
    file=( *.faa )
    cat "${file[@]}" > "${PWD##*/}.txt"
    )
done