2017-06-29 2 views
1

ich mit dem Unix zu tun habe xargs Katze, ich bin nicht wirklich in Unix und im Moment habe ich eine Katze Befehl wie folgt aus:xargs Katze mit bedingten Anweisung

ls *ex_vs*ex.txt | xargs cat > ex.txt 

    ls *en_vs*en.txt | xargs cat > en.txt 

Was will ich jetzt zu tun ist, machen eine Aussage, die diese Bedeutung hat:

ls *ex_vs*en.txt **OR** *en_vs*ex.txt | xargs cat > en_ex.txt 

so meine Frage ist im Grunde wie eine bedingte Anweisung zu setzen (oder) für Dateien zusammen catting. Jeder Vorschlag wird sehr geschätzt. Bester Alfredo

+0

es ist nicht klar, warum Sie denken Du brauchst 'xargs'. Im Allgemeinen können Sie einfach 'cat * en_vs * en.txt> en.txt' verwenden. UND Ihre Anforderung für ** ODER ** ist ebenfalls unklar. Warum nicht einfach 'cat * en.txt> en_all.txt; cat * ex.txt> ex_all.txt; cat> de_all.txt ex_all.txt> all.txt'. Wenn es keine Dateien gibt, die mit '* ex.txt' oder' * en.txt' übereinstimmen, wird es ein No-Op, und die Verarbeitung wird fortgesetzt. Die endgültige Datei wird das korrekte Ergebnis haben. Viel Glück. – shellter

+0

danke, du hast recht, funktioniert auch so. –

Antwort

0

ls kann Multiples Argument:

$ ls --help 
Usage: ls [OPTION]... [FILE]... 

So können Sie beide Datei Selektoren nach dem ls hinzufügen:

ls *ex_vs*en.txt *en_vs*ex.txt | xargs cat > en_ex.txt 

Sie können auch verwenden:

cat *ex_vs*en.txt *en_vs*ex.txt > en_ex.txt 
+0

Vielen Dank, es funktioniert perfekt! –

Verwandte Themen