Zeskanuj katalog plików i znajdź repliki o tej samej nazwie i połącz je w jeden plik


1

Mam katalog z wieloma plikami

Na przykład:

ExperimentA_Rep1.bed  
ExperimentA_Rep2.bed
ExperimentA_Rep3.bed 
ExperimentB_Rep1.bed 
ExperimentD_Rep1.bed 
ExperimentC_Rep1.bed
ExperimentC_Rep2.bed
 . . . 
ExperimentZ_Rep5.bed

Muszę przeskanować nazwy plików w katalogu i połączyć pliki, które pochodzą z tego samego eksperymentu, ale różnych replikacji, w nowy plik.

To znaczy, cat ExperimentA_Rep1.bed ExperimentA_Rep2.bed > ExperimentA_merged.bed

Ale nie mogę tego zakodować na stałe, musi mieć zastosowanie do każdego zestawu danych eksperymentów.

Gdybym uruchomił skrypt Pythona, to byłoby w porządku.

Odpowiedzi:


0

Poniżej założono, że część Rep nazwy pliku jest kolejno numerowana od 1 (tzn. Nie będzie Rep2 ani Rep3, chyba że będzie też Rep1). Wykorzystuje obecność pliku „Rep1”, aby zdecydować, czy uruchomić kota dla określonej serii plików Eksperymentu *. Jest to konieczne tylko wtedy, gdy w sekwencji Eksperyment A * .. brakuje Eksperymentu *. . Jeśli nie jest to możliwe, po prostu usuń [ -e Experiment${f}_Rep1.bed ] &&z linii kota.

for f in {A..Z} ; do
    [ -e Experiment${f}_Rep1.bed ] && cat Experiment${f}_Rep*.bed > Experiment${f}_merged.bed
done
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.