Awk 重命名和编辑ChiP seq bed文件

Awk 重命名和编辑ChiP seq bed文件,awk,sed,Awk,Sed,我有大约80个bed文件,前3列(示例:X2_example.bed,其中X2是基因名),我想添加第4列,并重命名文件(示例附件:X2_example_edited.bed、Y2_example_edited.bed等),然后将这些文件合并在一起创建一个bed文件 我可以用gene name添加第4列,并用不同的名称和代码保存文件 sed 's/$/\tX2/' < X2_example.bed > X2_example_edited.bed 但我必须为每个床单单独做这件事。这

我有大约80个bed文件,前3列(示例:X2_example.bed,其中X2是基因名),我想添加第4列,并重命名文件(示例附件:X2_example_edited.bed、Y2_example_edited.bed等),然后将这些文件合并在一起创建一个bed文件

我可以用gene name添加第4列,并用不同的名称和代码保存文件

 sed 's/$/\tX2/' < X2_example.bed  > X2_example_edited.bed
但我必须为每个床单单独做这件事。这是一种我可以从文件名中提取基因名的方法(例如,X2来自X2_example.bed),然后将其添加到bed文件的第4列,并将其保存为X2_example_edited.bed

我可以从文件名中提取基因名
echo“X2_example.bed”| awk-F'[.]'{print$1}

然而,由于我有太多的文件,我正在寻找一种方法来生成一个循环来自动化这个过程

此外,我需要合并所有生成的床文件,我可以这样做

cat *_edited.bed >output.bed
然而,我有一个错误(见附件:output.bed),第一个文件的最后一行和下一个文件的第一行在同一行

chr3    18467066    18467075    Y2
chr17   42276210    42276219    X2
我知道这一定是一件非常基本的事情,但我对这种分析是新手,知识有限。
提前感谢

您可以试用
awk

for file in *.bed; do 
    awk '{split(FILENAME,a,"_"); print $0, a[1]}' "$file" 
done > output.bed.all

@黛比写错了,是
awk
for file in *.bed; do 
    awk '{split(FILENAME,a,"_"); print $0, a[1]}' "$file" 
done > output.bed.all