2010-09-22 93 views
5

我如何添加在每行的開頭添加文本?如何添加在每行的開頭添加文本?

例如: - 我有文件包含: -

/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 

我希望它變成: -

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 

在其他詞我想補充「SVN + SSH:// SVN .xxx.com.jo「在此文件的每行的開頭

+0

你需要一個shell腳本? – zengr 2010-09-22 06:27:02

回答

5

一個方法是使用awk

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

如果要修改到位的文件,你可以使用sed-i開關。

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

不會gawk'{print「svn + ssh://svn.xxx.com.jo」$ 0}'會更簡單嗎? – 2013-04-12 01:33:47

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

簡單的方法:

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

它也可以用Perl完成:

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

使用sed

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

使用ex

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

使用vim

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

使用shell:

printf "line1\nline2\n" | while read line; do echo foo bar $line; done 
相關問題