Hallo, Am Mon, 06 Mar 2006, Dominik Klein schrieb:
Ich würde mit Hilfe von 'wc -l' mir die Anzahl Zeilen ausgeben lassen und dann per grep die Zahl herausfiltern. Diese kannst Du dann "tail -n" übergeben.
Danke. So geht's jetzt:
ZEILEN=`wc -l tempfile2| sed "s/^ *//g" |cut -d\ -f1` ZEILEN=$(($ZEILEN-2)) tail -n $ZEILEN datei > datei2 && mv datei2 datei
Das sed-Kommando habe ich mitgenommen, weil ältere Versionen von wc scheinbar Leerzeichen an den Anfang des Outputs packen und cut somit etwas überfordert war.
Falls man's so machen will geht z.B. auch sowas (besser): tail -n $(( `grep -c '^' datei` - 2 )) datei oder tail -n $(( `wc -l datei` - 2 )) datei Die shell interessieren die zusaetzlichen Leerzeichen nicht, wenn diese nicht gequoted oder (zu '\ ' escaped) sind. Fuer die shell sind $(( `wc -l datei | ...` - 2 )) $(( `wc -l datei` - 2 )) $(( 42 - 2 )) identisch (mal angenommen, dass die datei 42 Zeilen hat). -dnh -- "Tausche schwer verständliches Buch über Empfängnisverhütung gegen gebrauchten Kinderwagen..." [in de.soc.familie.kinder]