Ich habe eine CSV-Datei in jedem Unterverzeichnis (jedes Unterverzeichnis heißt RUN1, RUN2 usw.), das mit 'mod' beginnt. Ich möchte sie finden, die jeweils letzte Zeile abrufen und eine neue Datei erstellen, die nur diese Zeilen enthält. wenn mod1.csv im Unterverzeichnis RUN1 Zum Beispiel hat:Bash: tail, find und cat
1, 2, 3
4, 5, 6
und mod2.csv im Unterverzeichnis RUN2 hat
6,7,8
10,11,12
möchte ich eine neue Datei results.csv erstellen, die
4, 5, 6
10, 11, 12
enthält
Hier ist mein Versuch:
find $(pwd)/RUN* -name 'mod*.csv' tail -n +1 |xargs cat > results.csv
Der Fehler Ich erhalte ist
find: paths must precede expression: tail
Usage: find [-H] [-L] [-P] [-Olevel] [-D help|tree|search|stat|rates|opt|exec] [path...] [expression]
Ich habe seen this aber es scheint nicht das Problem zu lösen. Irgendwelche Ideen?
Du „exec“ –
Dank @WilliamPursell fehlt, aber wo soll ich es sagen? Immer noch ziemlich neu zu bash. – StatsSorceress
Das Programm 'find' hat übrigens nichts mit' bash' zu tun. Es ist unabhängig, keine integrierte Shell und kann von jeder Sprache aus aufgerufen werden. – cdarke