2016-12-02 3 views
0

Ich habe 2 Verzeichnisse dir1 und dir2 die wie gleiche Satz von Dateinamen hatWie Liste der 2-Dateien in zwei Verzeichnissen anhängen

dir1 
    file1(1 2 3) 
    file2 
    file3 .... 
dir2 
    file1(4 5 6) 
    file3 
    file5 .... 

Jetzt möchte ich dir1/file1-dir2/file1, dir1/file3 zu dir2/file3

anhängen

Ich muss nur anhängen, wenn beide Dateien in 2 verschiedenen Verzeichnissen vorhanden sind. hier dir1/file2 ist nicht in dir2, also müssen wir diese Fälle ignorieren.

Der endgültige Ausgang sollte file1(1 2 3 4 5 6) wie folgt sein.

+0

Der letzte Satz ist irreführend: Was ist datei1 (1 2 ... 6)? Aus dem ersten Teil verstehe ich, dass dir2/file1 jetzt dir1/file1 danach haben sollte. – fedorqui

+0

vielleicht können Sie einfach '>>': Schleife über alle Dateien in dir1, extrahieren Sie den Dateinamen Teil und führen Sie 'cat dir1/$ FILENAME >> dir2/$ FILENAME'. Oder möchten Sie Dateien, die nicht in dir2 enthalten sind, vollständig ignorieren? –

+0

Ich habe nur ein Beispiel wie dir1/file1 kann 1 2 3 und dir2/file1 haben 4 5 6 und nach dem Anhängen der dir2/file1 sollte 1 2 3 4 5 6 – user1990571

Antwort

0

Ich möchte dir1/file1-dir2/file1, dir1/file3 zu dir2/file3

files=`ls dir1` 
cd dir2 
files=`ls $files 2>/dev/null` 
for file in $files 
do cat ../dir1/$file >>$file 
done 

Beachten Sie, dass anhängen, da Sie dir1/file1-dir2/file1 anhängen , dir2/file14 5 61 2 3 hat.

Verwandte Themen