Объединить несколько файлов с именем файла в первом столбце - PullRequest
0 голосов
/ 18 июня 2019

Я пытаюсь объединить несколько файлов в один, добавляя имя каждого файла в первом столбце. Я уже поставил заголовок и имя файла, но я не хочу полное имя файла Спасибо

#!/bin/sh
for i in *.txt
do
  head -1 $i | awk '{OFS="\t";print "Sample", $0}' > outputprueba.txt
break
done
for a in *bla.txt
do
        sed 1d $a | awk -v x="'"$a"'" '{OFS="\t";print x, $0}' >> outputprueba.txt
done
I expect this output:
Sample  Chr Start   End
File1   chr1    10318652    10318652
File1   chr1    10322054    10322054
File2   chr1    132887500   132887500
File2   chr1    132888208   132888208

but the actual output is:
Sample  Chr Start   End
'File1_annotated_fastq_blablabla.txt'   chr1    10318652    10318652
'File1_annotated_fastq_blablabla.txt'   chr1    10322054    10322054
'File2_annotated_fastq_blablabla.txt'   chr1    132887500   132887500
'File2_annotated_fastq_blablabla.txt'   chr1    132888208   132888208

1 Ответ

0 голосов
/ 18 июня 2019

Это может быть то, что вы хотите:

awk '
BEGIN  { OFS="\t" }
NR==1  { print "Sample", $0 }
FNR==1 { fname=FILENAME; sub(/_.*/,"",fname); next }
{ print fname, $0 }
' *bla.txt
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...