• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

Shellscript: zeile in eine bestimmten stelle einfügen

calabero

Newbie
hallo
ich hab da ein kleines problemchen.

Wie stelle ich es in einem Script an, eine Datei zu editieren.
Es muss nur in der 7. Zeile eine Satz eingefügt werden.

Mit echo "Satz" >> Datei.txt hängt er es an die letzte Stelle an. :shock:

Könnt ihr mir bitte helfen :cry:
 

nobbiew

Hacker
Wenns nur einmal sein soll, dann Anhängen u. mit Editor dorthin verschieben.

Für mehrmaligen Gebrauch sollte folgende gehen

Code:
#!/bin/bash

FILE=$1;
APPEND=$2;
TMPFILE="/tmp/file.$$"
if [ -f "$FILE" ]; then
	head -6 $FILE > $TMPFILE;
	echo $APPEND >> $TMPFILE;
	tail +7 $FILE >> $TMPFILE;
	cat $TMPFILE > $FILE;
	rm -f $TMPFILE;

else
	echo "$FILE existiert nicht o. ist keine reguläre Datei"
fi

Aufrufen dann mit
Code:
scriptname Dateiname "Einfügezeile"

Achtung, das script fügt nach der 6. Zeile ein, wenn du erst nach der 7.Zeile einfügen willst musst du beiden Zahlen bei tail u. head um 1 erhöhen
 
Oben