Je veux ajouter des hachages à toutes les lignes d'un fichier texte normal. Je suis bien avec l'utilisation du terminal et de l'interface graphique — je dois juste le faire.
text-processing
Oxwivi
la source
la source
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
.sed 's/^\(.*\)$/##\1/'
, mais c'est beaucoup mieux.Voici une solution à ce problème en utilisant perl
la source
-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%2aPendant que nous y sommes:
Cela utilise le plug-in d'édition en place (relativement nouveau) pour GNU awk 4.1.0+.
la source
Voici un
bash
moyen:( Dans le
bash
shell , l'exécutionread -r
sans autre argument fonctionne commeIFS= 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.la source
sed -i
n'est pas standard POSIX, donc si vous êtes un puriste, vous voudrez utilisered
:la source
Voici un
perl
moyen plus simple que celui présenté ailleurs:Cette (ab) utilise le fait qui
perl -p
imprime la ligne après avoir exécuté la commande donnée dans-e
.la source
Vous pouvez utiliser Vim en mode Ex:
%
sélectionner toutes les ligness
remplacerx
sauver et fermerla source
Peut être fait avec la fonction de mappage de python et la redirection de stdin:
Enregistrez la sortie dans un nouveau fichier et utilisez-la à la place de l'original
la source