Réponses:
sed -e "\$aTEXTTOEND"
est le moyen le plus simple.
$
correspond à la dernière ligne (c'est une sed
adresse normale ; 4aTEXTTOEND
insérerait après la quatrième ligne), a
correspond à la commande append et à TEXTTOEND
ce qu'il faut ajouter.
sed -e '$a\NEWLINE\\'
. Remplacez NEWLINE par une nouvelle ligne réelle.
Pas besoin d'utiliser sed
dans ce cas. Que diriez-vous
echo "<?php" >> file
<php
" et " >
" entre crochets le fichier , et de citer le contenu sélectionné en une fois, donc il veut probablement vraiment un sed
fragment.
sudo
, ce qui provoque l'échec de cette variation puisqu'il echo
s'agit d'une commande intégrée dans le shell plutôt que d'un fichier exécutable trouvé dans$PATH
echo
est un fichier intégré, mais aussi un fichier exécutable se trouvant dans$PATH
En supposant que vous vouliez mettre la balise php de fin dans les fichiers, puis
sed -i '$s/$/\n?>/' file
devrait faire l'affaire
Voir votre message original pour la commande tout en un sed.
find . -type f -exec sed -i -e "1s/^/<?php /" -e "\$s/\$/ ?>/" {} \;
Utilisez la commande sed 'append (a)'. Par exemple, pour ajouter deux lignes à la fin du fichier:
sed -i -e '$a\
foo1 bar1\
foo2 bar2' file
De manière simple, écrivez et modifiez le contenu d’une ligne spécifique dans un fichier. Si vous souhaitez insérer quelque chose à un numéro de ligne spécifique, vous pouvez utiliser la commande ci-dessous:
sed -i '2i i have started' sheikh.log
où 2i
- numéro de ligne 2 et i signifie insertion. Si vous devez insérer à la dernière ligne, utilisez $
plutôt 2. J'ai commencé - texte à insérer et sheikh.log
est le nom du fichier.
Nous pouvons également faire les changements dans la ligne en utilisant la commande ci-dessous
sed -i '2c we have started' sheikh.log
i
est changé en we
.
Je suppose que quiconque a cherché comment insérer / ajouter du texte au début / à la fin d'un fichier doit probablement aussi savoir comment faire l'autre.
cal | \
gsed -E \
-e '1i\{' \
-e '1i\ "lines": [' \
-e 's/(.*)/ "\1",/' \
-e '$s/,$//' \
-e '$a\ ]' \
-e '$a\}'
Cette cal
sortie est dirigée vers gnu sed
(appelée gsed
sur macOS installé via brew.sh ) avec RegEx ( -E
) étendu et 6 "scripts" appliqués ( -e
) et les sauts de ligne avec échappée \
pour plus de lisibilité. Les scripts 1 et 2 utilisent 1i\
"à la ligne 1, insérer". Les scripts 5 et 6 utilisent $a\
"à la ligne <dernière>, ajoutez". J'ai aligné verticalement les sorties de texte pour que le code représente ce que l'on attend du résultat. Les scripts 3 et 4 font des substitutions (la dernière ne s’appliquant qu'à "ligne <dernier>"). Le résultat est la conversion de la sortie de la commande en JSON valide.
{
"lines": [
" October 2019 ",
"Su Mo Tu We Th Fr Sa ",
" 1 2 3 4 5 ",
" 6 7 8 9 10 11 12 ",
"13 14 15 16 17 18 19 ",
"20 21 22 23 24 25 26 ",
"27 28 29 30 31 ",
" "
]
}
{ cat file; echo 'END OF FILE'; } > newFile
, cela fonctionne aussi grâce à sh. *. (pas sed mais fonctionne et simple)