连接具有特定命名方案的文件对 (UBUNTU)
Concatenating Pairs of Files with Specific Naming Scheme (UBUNTU)
**这里似乎有部分答案,但用户遇到了我遇到的同样问题:保留原始命名方案很重要。
Loop to concatenate multiple pairs of files with almost the same name in UNIX**
我有一个包含配对文件的文件夹;名称如下所示(全部存储在相同的 folder/directory 中):
MX_HF20.1.fq.gz;
MX_HF20.rem.1.fq.gz
MX_HF22.1.fq.gz;
MX_HF22.rem.1.fq.gz
.
.
.
SD_F296.1.fq.gz;
SD_F296.rem.1.fq.gz
SD_F297.1.fq.gz;
SD_F297.rem.1.fq.gz
(有些人可能认为这是 STACKS 输出!)
真的,我只是想将 *.1.rem.fq.gz 文件的内容附加到 *.1.fq.gz 文件的末尾,保留原始 *.1.fq.gz文件名。
我玩过测试文件,所以我知道 cat 会执行此操作,即使文件是 .gz。但是我的 bash 脚本编写能力充其量是很差的,使用和存储名称变量是一个我仍在努力掌握的概念。
非常感谢!
也许尝试使用 bash 重赛:
#!/bin/bash
p='([A-Z]+_[A-Z]+)([0-9]+)\.1\.rem\.fq\.gz'
for f in *.gz; do
if [[ $f =~ $p ]]; then
cat "${f}" >> "${BASH_REMATCH[1]}${BASH_REMATCH[2]}.1.fq.gz"
fi
done
例如:
SD_F297.1.rem.fq.gz
将附加到 SD_F297.1.fq.gz
听起来您正在寻找这样的东西:
#!/bin/bash
for file1 in *.1.fq.gz; do
file2=`echo $file1 | sed -E 's/(*\.1)\.fq\.gz/.rem.fq.gz/'`
cat $file1 $file2 > out.$file1
done
反引号执行 shell 命令并将文本结果插入脚本中的那个点
sed 是 unix 中处理文本行的流编辑器
它使用正则表达式,在这种情况下你需要 () 来分组和捕获文件名的第一部分和 \1 来引用它
**这里似乎有部分答案,但用户遇到了我遇到的同样问题:保留原始命名方案很重要。
Loop to concatenate multiple pairs of files with almost the same name in UNIX**
我有一个包含配对文件的文件夹;名称如下所示(全部存储在相同的 folder/directory 中):
MX_HF20.1.fq.gz; MX_HF20.rem.1.fq.gz
MX_HF22.1.fq.gz; MX_HF22.rem.1.fq.gz
.
.
.
SD_F296.1.fq.gz; SD_F296.rem.1.fq.gz
SD_F297.1.fq.gz; SD_F297.rem.1.fq.gz
(有些人可能认为这是 STACKS 输出!)
真的,我只是想将 *.1.rem.fq.gz 文件的内容附加到 *.1.fq.gz 文件的末尾,保留原始 *.1.fq.gz文件名。
我玩过测试文件,所以我知道 cat 会执行此操作,即使文件是 .gz。但是我的 bash 脚本编写能力充其量是很差的,使用和存储名称变量是一个我仍在努力掌握的概念。
非常感谢!
也许尝试使用 bash 重赛:
#!/bin/bash
p='([A-Z]+_[A-Z]+)([0-9]+)\.1\.rem\.fq\.gz'
for f in *.gz; do
if [[ $f =~ $p ]]; then
cat "${f}" >> "${BASH_REMATCH[1]}${BASH_REMATCH[2]}.1.fq.gz"
fi
done
例如:
SD_F297.1.rem.fq.gz
将附加到 SD_F297.1.fq.gz
听起来您正在寻找这样的东西:
#!/bin/bash
for file1 in *.1.fq.gz; do
file2=`echo $file1 | sed -E 's/(*\.1)\.fq\.gz/.rem.fq.gz/'`
cat $file1 $file2 > out.$file1
done
反引号执行 shell 命令并将文本结果插入脚本中的那个点
sed 是 unix 中处理文本行的流编辑器
它使用正则表达式,在这种情况下你需要 () 来分组和捕获文件名的第一部分和 \1 来引用它