How to get one output file containing processed data from several files and each filename used as header followed by the data
3
0
Entering edit mode
6.4 years ago

I am running samtools on multiple files (2500 files) so using the following command

sed '1d' Chromosome_cord_new.txt | xargs -P 4 -I % sh -c "samtools idxstats *.bam % > %.txt"


this gives me different file with the names of each coordinate.txt. I want to run this command in a way that inspite of getting so many output files in my case 2500 files, how can I get only one output file with each filename as header follwed by the output data of that file. So I am getting coordinate 1.txt, coordinate 2.txt ...... and so on as output but I want to get output in one file like coordinate 1 output data coordinate 2 outputdata ..... and so on

I have 2500 coordinates in this way. I want to plot the data points from each coordinates afterwards which will be easier if all data is contained in one file rather than in 2500 files separately.

Thanks

shell • 1.8k views
1
Entering edit mode
6.4 years ago
venu 7.0k

Using a for loop

for i in *.txt; do echo "$i" >> new_file.txt ; cat$i >> new_file.txt; done

0
Entering edit mode

Thanks venu your suggestion are quite good.

1
Entering edit mode
6.4 years ago
ole.tange ★ 4.3k
parallel 'echo {}; cat {}' ::: *.txt > newfile