Je veux utiliser un here-doc pour les commandes sed et fournir le fichier à lire et le fichier de sortie.
J'ai regardé Here-Documents from Advanced Bash Scripting guide mais il ne mentionne rien sur les arguments réguliers lors de l'utilisation d'un here-doc. Est-ce même possible?
J'aimerais réaliser quelque chose comme ceci:
#!/bin/bash
OUT=/tmp/outfile.txt
IN=/my_in_file.txt
sed $IN << SED_SCRIPT
s/a/1/g
s/test/full/g
SED_SCRIPT
> $OUT;
Toute aide est vraiment appréciée.
la source
-f -
dans ,sed
mais il nécessite la substitution de processus:<( command )
.Dans le cas où
sed
ne prend pas en charge la lecture d'un scriptstdin
( en utilisant-f -
), vous pouvez utiliser la substitution de processus (disponible enbash
,zsh
,ksh93
):La parenthèse fermante
)
doit suivre le délimiteur de fin (SEC_SCRIPT
) immédiatement ou après une nouvelle ligne. Dans le cas de la substitution de processus, vous pouvez également utiliser à laecho
place d'un document ici:la source
"$IN"
ou mêmetestfile.txt
) suivant immédiatement la commande sed elle-même - il voulait un-e script
ou-f file
. Réorganiser la réponse de @pabouk a fonctionné pour moi:sed -f <( cat << ETC ... ETC) "$IN" > "$OUT"
SED_SCRIPT
.Peut-être une meilleure approche:
:)
la source