Réponses:
Vous pouvez utiliser sed
pour cela:
sed -i.bak 's/^/##/' file
Cela remplace le début de la ligne ( ^
) par ##
.
Avec le -i.bak
commutateur, sed
modifie le fichier sur place, mais crée une copie de sauvegarde avec l'extension .bak
.
sed 's/^\(.*\)$/##\1/'
, mais c'est beaucoup mieux.
Voici une solution à ce problème en utilisant perl
perl -e 'while (<>) {print "##$_"}' < infile > outfile
-p
commutateur est également utile: perl -pe 's/^/##/' infile > outfile
. (Il y a aussi le -i[extension]
commutateur pour remplacer le fichier cible sur place.) Perldoc.perl.org/perlrun.html#%2a-p%2a
Pendant que nous y sommes:
gawk -i inplace '{print "##"$0}' infile
Cela utilise le plug-in d'édition en place (relativement nouveau) pour GNU awk 4.1.0+.
Voici un bash
moyen:
while read -r; do printf '##%s\n' "$REPLY"; done < infile > outfile
( Dans le bash
shell , l'exécution read -r
sans autre argument fonctionne comme IFS= read -r REPLY
.)
Ceci est stylistiquement inspiré par la solution perl de beav_35 , qui, je l'avoue, fonctionne probablement beaucoup plus rapidement pour les fichiers volumineux, car perl
on peut s'attendre à ce qu'elle soit plus efficace qu'un shell en matière de traitement de texte.
Vous pouvez utiliser Vim en mode Ex:
ex -sc '%s/^/##/|x' file
%
sélectionner toutes les lignes
s
remplacer
x
sauver et fermer
Peut être fait avec la fonction de mappage 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
sed 's/^/##/' -i file
. Dans ce cas, cela serait préférable car il ne peut pas se tromper. Dans d'autres cas, cette commande peut être combinée avecdiff -u file.bak file
pour voir les différences (si nécessaire, dirigez-laless
). S'il est confirmé que cela fonctionne, la sauvegarde peut être supprimée. Sinon, il pourrait être restauré avec un simplemv file.bak file
.