查看文件名并在bash中连接它们

查看文件名并在bash中连接它们,bash,Bash,我以前从未用bash编程。 我正在读取一个目录中的所有文件,然后我需要查看它们的名称并检查它们是否有R1或R2,这取决于我需要连接在同一目录中有R1的所有文件以及名称中有R2的所有文件。 因此,作为最终输出,我希望有如下内容: 字符串1=file1\u R1.gz file2\u R1.gz file3\u R1.gz 字符串2=file1_R2.gz file2_R2.gz file3_R2.gz 我该怎么做?到目前为止,我仅有的代码是: #!/bin/bash list=$(echo *.

我以前从未用bash编程。 我正在读取一个目录中的所有文件,然后我需要查看它们的名称并检查它们是否有R1或R2,这取决于我需要连接在同一目录中有R1的所有文件以及名称中有R2的所有文件。 因此,作为最终输出,我希望有如下内容:

字符串1=file1\u R1.gz file2\u R1.gz file3\u R1.gz

字符串2=file1_R2.gz file2_R2.gz file3_R2.gz

我该怎么做?到目前为止,我仅有的代码是:

#!/bin/bash

list=$(echo *.gz)

strR1="R1"
strR2="R2"

if [ "$list" = "*.gz" ] ; then list=""; fi

for str in $list
do
    if echo "$strR1"  | grep -q "$str"; then
         echo "str";
else 
echo "no file";
fi

done
我可以读取目录中的所有文件,但当我执行此操作时,如果找不到任何带有R1的文件,我知道名称中至少有4个带有R1的文件


谢谢大家!

为什么要编写一个循环来执行过滤通配符已经可以为您完成的操作?(您已经在使用相同的东西筛选
*.gz

既然您说过要连接所有这些文件,那就太简单了

zcat *R1.gz > result_R1
zcat *R2.gz > result_R2

或者类似的东西。

为什么要写一个循环来完成过滤通配符已经可以为您做的事情?(您已经在使用相同的东西筛选
*.gz

既然您说过要连接所有这些文件,那就太简单了

zcat *R1.gz > result_R1
zcat *R2.gz > result_R2
或者类似的