Eine Antwort schreiben

Schreibe deinen Beitrag und versende ihn
Beitragsoptionen
Deine Antwort

Zurück

Themen-Übersicht (Neuester Beitrag zuerst)

Andy@Arch
23.11.2018 15:39:04
T.M. schrieb:

Ich vermute, die $Zeilen_Nummer ist eins zu hoch, bei der letzten Zeile geht's dann schief, die gibt's nicht.

Nein daran liegt es nicht, sonst würde es vor der letzten Zeile auch nicht funktionieren

T.M.
21.11.2018 08:26:34

Ich vermute, die $Zeilen_Nummer ist eins zu hoch, bei der letzten Zeile geht's dann schief, die gibt's nicht.

Andy@Arch
20.11.2018 20:17:38

Kann mir mal jemand sagen warum sed mit dem folgenden Aufruf nicht die letzte Zeile in der Datei ändert?

sed -i -e "$Zeilen_Nummer{N;s#test.$Zeilen_Inhalt#Drei_Null#} 

habe hier ein kleines Testscript geschrieben um das Problem zu verdeutlichen

#!/bin/bash
#testfile wird generiert

echo "test.0" > /tmp/testfile

for ((k=1; k<401; k++)); do
  echo "test.$k" >> /tmp/testfile
done

for ((k=400; k>0; k--)); do
  echo "test.$k" >> /tmp/testfile
done


read -p "Enter zum konvertieren"

#Nummern werden umgewandelt

	while [ $(grep -c "test." /tmp/testfile ) -gt 0 ]; do
		
		Zeilen_Inhalt=$(grep -m 1 "test." /tmp/testfile |cut -d. -f2)
		Zeilen_Nummer=$(grep -m 1 -n "test." /tmp/testfile |cut -d: -f1)
		echo $Zeilen_Nummer $Zeilen_Inhalt
			
		if [ "$Zeilen_Inhalt" -ge 0 ] && [ "$Zeilen_Inhalt" -le 011 ];then
			sed -i -e "$Zeilen_Nummer{N;s#test.$Zeilen_Inhalt#Drei_Null#}" /tmp/testfile

		elif [ "$Zeilen_Inhalt" -ge 012 ] && [ "$Zeilen_Inhalt" -le 033 ];then
			sed -i -e "$Zeilen_Nummer{N;s#test.$Zeilen_Inhalt#Drei_Drei_Zwei_Null#}" /tmp/testfile
			
		elif [ "$Zeilen_Inhalt" -ge 034 ] && [ "$Zeilen_Inhalt" -le 056 ];then
			sed -i -e "$Zeilen_Nummer{N;s#test.$Zeilen_Inhalt#Drei_Zwei_Null#}" /tmp/testfile
			
		elif [ "$Zeilen_Inhalt" -ge 057 ] && [ "$Zeilen_Inhalt" -le 078 ];then
			sed -i -e "$Zeilen_Nummer{N;s#test.$Zeilen_Inhalt#Zwei_Drei_Zwei_Null#}" /tmp/testfile
			
		elif [ "$Zeilen_Inhalt" -ge 079 ] && [ "$Zeilen_Inhalt" -le 101 ];then
			sed -i -e "$Zeilen_Nummer{N;s#test.$Zeilen_Inhalt#Zwei_Null#}" /tmp/testfile
			
		elif [ "$Zeilen_Inhalt" -ge 102 ] && [ "$Zeilen_Inhalt" -le 123 ];then
			sed -i -e "$Zeilen_Nummer{N;s#test.$Zeilen_Inhalt#Zwei_Eins_Zwei_#}" /tmp/testfile
			
		elif [ "$Zeilen_Inhalt" -ge 124 ] && [ "$Zeilen_Inhalt" -le 146 ];then
			sed -i -e "$Zeilen_Nummer{N;s#test.$Zeilen_Inhalt#Eins_Zwei_Null#}" /tmp/testfile
			
		elif [ "$Zeilen_Inhalt" -ge 147 ] && [ "$Zeilen_Inhalt" -le 168 ];then
			sed -i -e "$Zeilen_Nummer{N;s#test.$Zeilen_Inhalt#Eins_Eins_Zwei_Null#}" /tmp/testfile
			
		elif [ "$Zeilen_Inhalt" -ge 169 ] && [ "$Zeilen_Inhalt" -le 191 ];then
			sed -i -e "$Zeilen_Nummer{N;s#test.$Zeilen_Inhalt#Eins_Null#}" /tmp/testfile
			
		elif [ "$Zeilen_Inhalt" -ge 192 ] && [ "$Zeilen_Inhalt" -le 213 ];then
			sed -i -e "$Zeilen_Nummer{N;s#test.$Zeilen_Inhalt#Eins_Eins_Vier_Null#}" /tmp/testfile
			
		elif [ "$Zeilen_Inhalt" -ge 214 ] && [ "$Zeilen_Inhalt" -le 236 ];then
			sed -i -e "$Zeilen_Nummer{N;s#test.$Zeilen_Inhalt#Eins_Vier_Null#}" /tmp/testfile
			
		elif [ "$Zeilen_Inhalt" -ge 237 ] && [ "$Zeilen_Inhalt" -le 258 ];then
			sed -i -e "$Zeilen_Nummer{N;s#test.$Zeilen_Inhalt#Vier_Eins_Vier_Null#}" /tmp/testfile
			
		elif [ "$Zeilen_Inhalt" -ge 259 ] && [ "$Zeilen_Inhalt" -le 281 ];then
			sed -i -e "$Zeilen_Nummer{N;s#test.$Zeilen_Inhalt#Vier_Null#}" /tmp/testfile
			
		elif [ "$Zeilen_Inhalt" -ge 282 ] && [ "$Zeilen_Inhalt" -le 303 ];then
			sed -i -e "$Zeilen_Nummer{N;s#test.$Zeilen_Inhalt#Vier_Drei_Vier_Null#}" /tmp/testfile
			
		elif [ "$Zeilen_Inhalt" -ge 304 ] && [ "$Zeilen_Inhalt" -le 326 ];then
			sed -i -e "$Zeilen_Nummer{N;s#test.$Zeilen_Inhalt#Drei_Vier_Null#}" /tmp/testfile
			
		elif [ "$Zeilen_Inhalt" -ge 327 ] && [ "$Zeilen_Inhalt" -le 348 ];then
			sed -i -e "$Zeilen_Nummer{N;s#test.$Zeilen_Inhalt#Drei_Drei_Vier_Null#}" /tmp/testfile
			
		elif [ "$Zeilen_Inhalt" -ge 349 ] && [ "$Zeilen_Inhalt" -le 360 ];then
			sed -i -e "$Zeilen_Nummer{N;s#test.$Zeilen_Inhalt#Drei_Null#}" /tmp/testfile
		
		elif [ "$Zeilen_Inhalt" -ge 361 ];then
			Korrektierter_Inhalt=$(echo "test."$(( $Zeilen_Inhalt - 360 )))
			sed -i -e "$Zeilen_Nummer{N;s#test.$Zeilen_Inhalt#$Korrektierter_Inhalt#}" /tmp/testfile

		fi

	done

Fußzeile des Forums

Powered by FluxBB