staging.inyokaproject.org

Einfügen von Werten an bestimmte Stelle einer Datei

Status: Ungelöst | Ubuntu-Version: Ubuntu 18.04 (Bionic Beaver)
Antworten |

Daniel183

Anmeldungsdatum:
9. Februar 2019

Beiträge: 31

Hi

kurz vor den Feiertagen bin ich wieder mal dumm...

Ich habe folgendes Problem:

Ich habe eine Datei ("Wert.txt") mit den Inhalten:

1
2
3
4
5
1   Test1   Datum
2   Test2   Datum
3   Test3   Datum
4   Test4   Datum
5   Test5   Datum

und eine andere Datei ("Abfrage.txt") mit den Inhalten:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
Jede Menge

wilder
Text

der teilweise seltsam

formatiert ist

und manchmal auch

seltsam aussieht.

Mein Ziel ist, dass nach einer bestimmten, eindeutig und nur einmal vorkommenden Stelle in diesem wilden Text ("und manchmal auch") die Zeilen aus der "Werte.txt" eingefügt werden, damit es danach so aussieht:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
Jede Menge

wilder
Text

der teilweise seltsam

formatiert ist

und manchmal auch

1   Test1   Datum
2   Test2   Datum
3   Test3   Datum
4   Test4   Datum
5   Test5   Datum

seltsam aussieht.

Die Frage ist: Ist das einfach und unkompliziert mit BASH zu erledigen oder brauch ich dazu besser etwas anderes - und wenn es einfach und unkompliziert zu erledigen ist...wie wäre da ein passender Ansatz?

Ich danke euch schon wieder mal für eure Hilfe.

MfG Daniel ☺

dingsbums

Anmeldungsdatum:
13. November 2010

Beiträge: 3793

1
2
3
4
5
6
7
cat Abfrage.txt | while read line;do
   if [ "$line" == "und manchmal auch" ];then
      echo && echo "$line" && cat Wert.txt && echo
   else
      echo "$line"
   fi
done

seahawk1986

Anmeldungsdatum:
27. Oktober 2006

Beiträge: 11278

Oder als Einzeiler mit awk:

1
awk '//; /und manchmal auch/{print ""; while(getline < "Wert.txt"){print}}' Abfrage.txt

user_unknown

Avatar von user_unknown

Anmeldungsdatum:
10. August 2005

Beiträge: 17630

Natürlich am elegantesten mit sed:

1
sed "/und manchmal auch/rWert.txt"  Abfrage.txt 
Antworten |