Réponses:
sed -e "\$aTEXTTOEND" est le moyen le plus simple.
$correspond à la dernière ligne (c'est une sedadresse normale ; 4aTEXTTOENDinsérerait après la quatrième ligne), acorrespond à la commande append et à TEXTTOENDce qu'il faut ajouter.
sed -e '$a\NEWLINE\\'. Remplacez NEWLINE par une nouvelle ligne réelle.
Pas besoin d'utiliser seddans 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 sedfragment.
sudo, ce qui provoque l'échec de cette variation puisqu'il echos'agit d'une commande intégrée dans le shell plutôt que d'un fichier exécutable trouvé dans$PATH
echoest 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.logest 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
iest 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 calsortie est dirigée vers gnu sed(appelée gsedsur 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)