2009-04-06 9 views
1

J'utilise un script shell. Comment copier un contenu de fichier dans un autre fichier en utilisant "sed". Je dois utiliser seulement sed pour compléter cette copie. Sed écrit sa sortie sur la sortie standard, pas dans un fichier.Copier le contenu du fichier avec sed

+0

Ceci est un devoir, je suppose? Même si vous êtes sur un système embarqué avec rien d'autre que sed et un shell, le shell seul suffit; il n'y a pas de raison d'utiliser sed. –

+1

eh ..... dites à votre professeur de "F $% # OFF" pour vous demander de trop cuire quelque chose. Cp fichier1 fichier2 –

Répondre

0

Vous devez utiliser des redirections. Une commande est possible:

sed -n 'p' myInFile > myOutFile 
0

Tout ce que vous avez besoin est un noop:

sed -e '' <"${OLDNAME}" >"${NEWNAME}" 

... Cela dit, pourquoi ? La plupart des minuscules systèmes embarqués utiliseront busybox, et bien qu'ils n'aient pas de cp (hé, j'ai construit une busybox sans un pour une appliance de routeur dédiée!), Ne pas ajouter cat à la config busybox est juste idiot.

0

Comme le suggère, vous pouvez faire avec sed, mais pourquoi ne pas copier simplement le fichier avec la commande cp?

+1

Ce que je peux comprendre - cp n'est pas un shell intégré, et peut donc ne pas être disponible dans les systèmes embarqués soit (1) ne pas utiliser busybox ou (2) avec une busybox extrêmement réduite. Certes, sed n'est pas non plus, mais il peut déjà être installé pour d'autres raisons. Encore bête - la coquille seule suffit. –

1

Si vous voulez réellement utiliser la fonctionnalité d'écriture dans sed, vous pouvez utiliser la commande w pour écrire dans un fichier spécifique

sed -n "w$NEWNAME" $OLDNAME 
Questions connexes