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

[gelöst] Datei mit sed in andere Datei einfügen

Guten Tag!

Ich möchte gerne den Inhalt einer Datei (datei1), mit Hilfe von sed, an einer bestimmten Stelle (Zeile 7) einer anderen Datei (datei2) einfügen und diese speichern (datei3). Ich habe folgendes, ohne Erfolg probiert:
Code:
cat /home/user/datei2 | sed '7i\' /home/user/datei1 > /home/user/datei3
Wenn ich diesen Befehl ausführe, erhalte ich folgende Fehlermeldung:
Code:
sed: Kann -1 Felder nicht auf stdout schreiben: Erfolg
Was mache ich falsch?

Vielen Dank schon mal im Voraus und beste Grüße,

noms
 
Könntest vielleicht auch mit cat, head und tail arbeiten, sozusagen mit Kopf und Schwanz der Katze :wink:.

Oder ich könnt's kurz in Perl schreiben. Interesse?
 
cutprint.pl:
Code:
#!/usr/bin/perl

use warnings;
use strict;

# cutprint.pl

use Tie::File;

if($#ARGV < 2) {
    print "Usage: cutprint.pl file1 file2 nroflinesfromfile1\n";
    exit(1);
}

my $file1 = $ARGV[0];
my $file2 = $ARGV[1];

my $cutoff = $ARGV[2];

my @a;
my $i;

tie @a, 'Tie::File', $file1 or die;

if($#a < $cutoff) {
    die "File '$file1' too small.";
}

for($i=0; $i<$cutoff; $i++) {
    print "$a[$i]\n";
}

open(FH, "<$file2");
print <FH>;
close(FH);

for($i=$cutoff; $i<=$#a; $i++) {
    print "$a[$i]\n";
}
Gruß
 
Nichts gegen das perl-Script....
sed kann das aber etwas einfacher mit der Option r

Code:
sed -e '7r/home/user/datei1' /home/user/datei2 > /home/user/datei3
 
Hi!

Recht herzlichen Dank euch beiden, für eure Hilfe! Ich werde bevorzugt die Variante mit sed verwenden, weil ich die ja auch gesucht habe! Trotzdem vielen, lieben Dank für Dein perl-script!

Beste Grüße,

noms
 
Oben