464 votes

Ajouter un préfixe au début de chaque ligne

J'ai un fichier ci-dessous :

line1
line2
line3

Et je veux obtenir

prefixline1
prefixline2
prefixline3

Je pourrais écrire un script ruby, mais c'est mieux si je n'avez pas besoin.

EDIT: prefix contient / , c'est un chemin , /opt/workdir/ par exemple.

715voto

Alok Singhal Points 33073
sed -e 's/^/prefix/' file

# If you want to edit the file in-place
sed -i -e 's/^/prefix/' file

# If you want to create a new file
sed -e 's/^/prefix/' file > file.new

Si prefix contient /, vous pouvez utiliser n'importe quel autre caractère non en prefix, ou échapper à l' /, de sorte que l' sed commande devient

's#^#/opt/workdir#'
# or
's/^/\/opt\/workdir/'

159voto

Vijay Points 17992
awk '$0="prefix"$0' file > new_file

34voto

Steven Penny Points 18523
$ cat file.txt
line1
line2
line3

$ nl -s prefix file.txt | cut -c7-
prefixline1
prefixline2
prefixline3

13voto

Majid Azimi Points 1298

Si vous avez Perl:

perl -pe 's/^/PREFIX/' input.file

6voto

ghostdog74 Points 86060

l'utilisation de la coque

#!/bin/bash
prefix="something"
file="file"
while read -r line
do
 echo "${prefix}$line"
done <$file > newfile
mv newfile $file

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X