我如何在每行的开头添加添加文字?

时间:2010-09-22 06:25:32

标签: linux command-line file

我如何在每行的开头添加添加文字?

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

/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”

5 个答案:

答案 0 :(得分:7)

执行此操作的一种方法是使用awk

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

如果您要修改文件,可以将sed-i开关一起使用。

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

答案 1 :(得分:3)

使用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

答案 2 :(得分:0)

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

答案 3 :(得分:0)

简单方法:

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

答案 4 :(得分:0)

也可以使用Perl:

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