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
8.6 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.

Please suggest something.

Thanks

shell • 2.4k views
ADD COMMENT
1
Entering edit mode
8.6 years ago
venu 7.1k

Using a for loop

for i in *.txt; do echo "$i" >> new_file.txt ; cat $i >> new_file.txt; done
ADD COMMENT
0
Entering edit mode

Thanks venu your suggestion are quite good.

ADD REPLY
1
Entering edit mode
8.6 years ago
ole.tange ★ 4.5k
parallel 'echo {}; cat {}' ::: *.txt > newfile
ADD COMMENT

Login before adding your answer.

Traffic: 1508 users visited in the last hour
Help About
FAQ
Access RSS
API
Stats

Use of this site constitutes acceptance of our User Agreement and Privacy Policy.

Powered by the version 2.3.6