>
peut le faire.
echo "text" > file
tee
peut le faire.
echo "test" | tee file
sed
peut-il le faire sans utiliser l'une des méthodes ci-dessus? Est-il possible d'enregistrer la sortie d'une commande sed
dans un fichier sans utiliser ni >
ou tee
?
tee et> peuvent être utilisés pour la redirection des données car ils sont destinés à être utilisés pour la redirection des données sous linux.
sed, d'autre part, est un éditeur de flux. sed n'est pas destiné à la redirection de données comme tee et> censé l'être. Cependant, vous pouvez utiliser la conjonction de commandes pour ce faire.
utiliser tee ou> avec sed
sed 's/Hello/Hi/g' file-name | tee file
ou
sed 's/Hello/Hi/g' file-name > file
utiliser sed avec l'option -i
sed -i 's/Hello/Hi/g' file-name
le dernier ne redirige pas, au lieu de cela, il apportera des modifications dans le fichier lui-même.
sed
a la commande w
qui pourrait faire ce dont vous avez besoin:
w nom de fichier
Écrivez l'espace de motif actuel dans le nom de fichier.
sed 'w file'
aura à lui seul le même effet que tee file
. S'il existe d'autres commandes sed, mettez la w
en dernier:
sed 's/This/That/;w file'
Cependant, cela ne sera pas affecté par le -n/--quiet/--silent
option. Cela supprime uniquement le contenu qui aurait autrement été envoyé à la sortie standard.
Comme ankidaemon a correctement indiqué comment nous pouvons enregistrer la sortie sed dans un fichier. Je voudrais ajouter que si nous effectuons certaines opérations sur un fichier, c'est-à-dire remplacer et que nous souhaitons enregistrer la sortie dans le même fichier. Il y a un -i
drapeau dans sed
ce qui rend possible les modifications sur place. Cela crée cependant un fichier de sauvegarde dans le processus. Si ce n'est pas nécessaire, cela peut être fait en passant simplement un nom de fichier vide à -i
drapeau.