查看文件名并在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 我该怎么做?到目前为止,我仅有的代码是:查看文件名并在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 *.
#!/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
或者类似的