2010-09-22 35 views
5

cómo puedo agregar Agregar texto al principio de cada línea?cómo puedo agregar Agregar texto al comienzo de cada línea?

por ejemplo: - Tengo archivo contienen: -

/var/lib/svn/repos/b1me/products/payone/generic/code/core 
/var/lib/svn/repos/b1me/products/payone/generic/code/fees 
/var/lib/svn/repos/b1me/products/payone/generic/code/2ds 

yo quiero que se convierta en: -

svn+ssh://svn.xxx.com.jo/var/lib/svn/repos/b1me/products/payone/generic/code/core 
svn+ssh://svn.xxx.com.jo/var/lib/svn/repos/b1me/products/payone/generic/code/fees  
svn+ssh://svn.xxx.com.jo/var/lib/svn/repos/b1me/products/payone/generic/code/2ds 

en otras palabras, quiero añadir "svn + ssh: // SVN .xxx.com.jo "al comienzo de cada línea de este archivo

+0

necesita un script de shell? – zengr

Respuesta

5

Una forma de hacerlo es usar awk.

awk '{ printf "svn+ssh://svn.xxx.com.jo"; print }' <filename> 

Si desea modificar el archivo en su lugar, puede utilizar sed con el interruptor -i.

sed -i -e 's_.*_svn+ssh://svn.xxx.com.jo&_' <filename> 
+0

No se sorprendería '{print' svn + ssh: //svn.xxx.com.jo "$ 0} ' ¿sería más simple? –

0
ruby -pne 'sub(/^/,"svn+ssh://svn.xxx.com.jo")' file 
0

manera simple:

sed -i 's_._svn+ssh://svn.xxx.com.jo_' <filename> 
0

También se puede hacer con Perl:

perl -pe 's#^#svn+ssh://svn.xxx.com.jo#' input.file 
2

Usando sed:

printf "line1\nline2\n" | sed "s/^/new text /" 

Usando ex:

printf "line1\nline2\n" | ex -s +"%s/^/foo bar /e" +%p -cq! /dev/stdin 

Usando vim:

printf "line1\nline2\n" | vim - -es +"%s/^/foo bar /e" +%p -cq! 

El uso de la cáscara:

printf "line1\nline2\n" | while read line; do echo foo bar $line; done 
Cuestiones relacionadas