Je souhaite ajouter des hachages à toutes les lignes d'un fichier texte normal. L’utilisation du terminal et de l’interface graphique me convient parfaitement. Je dois juste le faire.
Vous pouvez utiliser sed
pour le faire:
sed -i.bak 's/^/##/' file
Ceci remplace le début de la ligne ( ^
) par ##
.
Avec le commutateur -i.bak
, sed
modifie le fichier sur place, mais crée une copie de sauvegarde portant l'extension .bak
.
Pendant que nous y sommes:
gawk -i inplace '{print "##"$0}' infile
Ceci utilise le (relativement nouveau) plug-in d'édition en place pour GNU awk 4.1.0 +.
Voici un bash
:
while read -r; do printf '##%s\n' "$REPLY"; done < infile > outfile
( dans le shell bash
, , en exécutant read -r
avec aucun autre argument ne fonctionne comme IFS= read -r REPLY
.)
Ceci est stylistiquement inspiré par la solution perl de beav_35 , qui, je l'avoue, s'exécute probablement beaucoup plus rapidement pour les gros fichiers, car perl
pourrait être plus efficace qu'un shell en ce qui concerne le texte traitement.
Vous pouvez utiliser Vim en mode Ex:
ex -sc '%s/^/##/|x' file
%
sélectionner toutes les lignes
s
substitute
x
enregistrer et fermer
Peut être fait avec la fonction de mapping de python et la redirection de stdin:
$ cat input.txt
lorem ipsum
quick brown fox
hello world
$ python -c 'import sys;print "".join(map(lambda x: "##"+x,sys.stdin.readlines()))' < input.txt
##lorem ipsum
##quick brown fox
##hello world
Enregistrez la sortie dans un nouveau fichier et utilisez-la à la place de l'original
Lire d'autres questions sur les étiquettes text-processing