2012-09-18 51 views
3

使用桑达通过印刷替换模式,我想取代这个长线:桑达在Ubuntu Linux操作系统,在新线

http://download.lenovo.com/UserFiles/Driver/en/Downloads%20and%20Drivers/Z570/Win7/IN3ETN46WW5.exehttp://download.lenovo.com/UserFiles/Driver/en/Downloads%20and%20Drivers/Z570/Win%207%20Update/IN1AUD25WW5.exehttp://download.lenovo.com/UserFiles/Driver/en/Downloads%20and%20Drivers/Z570/Win7/IN2VDO61WW6.exehttp://download.lenovo.com/UserFiles/Driver/en/Downloads%20and%20Drivers/Z570/Win7/IN1SRM38WW5.exehttp://download.lenovo.com/UserFiles/Driver/en/Downloads%20and%20Drivers/Z570/Win7/IN2VDO63WW5.exehttp://download.lenovo.com/UserFiles/Driver/en/Downloads%20and%20Drivers/Z570/Win7/IN6WLN49WW5.exe 

成这样:

http://download.lenovo.com/UserFiles/Driver/en/Downloads%20and%20Drivers/Z570/Win7/IN3ETN46WW5.exe 
http://download.lenovo.com/UserFiles/Driver/en/Downloads%20and%20Drivers/Z570/Win%207%20Update/IN1AUD25WW5.exe 
http://download.lenovo.com/UserFiles/Driver/en/Downloads%20and%20Drivers/Z570/Win7/IN2VDO61WW6.exe 

我试过(里面VIM )

:%s#http://#\nhttp://#g 

它不起作用。

有什么建议吗?

+1

你想用'vim'或'sed'或者两者都做这个吗? – Thor

回答

3

出于某种原因vim希望在更换\r,因此,如果您更改替换到:

:%s#http://#\r&#g 

它会奏效。

如果你不介意额外的空白,这将在sed工作:

sed 's#http://#\n&#g' infile 
+0

在Vim中,我会使用':%s#http://#\ r&#g'。 –

+0

复制了你的建议。 – Thor

0

如果额外的空格是烦人,你可以使用GNU awk

awk -F "http" '{ for (i=2; i<=NF; i++) print FS $i }' file.txt 

结果:

http://download.lenovo.com/UserFiles/Driver/en/Downloads%20and%20Drivers/Z570/Win7/IN3ETN46WW5.exe 
http://download.lenovo.com/UserFiles/Driver/en/Downloads%20and%20Drivers/Z570/Win%207%20Update/IN1AUD25WW5.exe 
http://download.lenovo.com/UserFiles/Driver/en/Downloads%20and%20Drivers/Z570/Win7/IN2VDO61WW6.exe 
http://download.lenovo.com/UserFiles/Driver/en/Downloads%20and%20Drivers/Z570/Win7/IN1SRM38WW5.exe 
http://download.lenovo.com/UserFiles/Driver/en/Downloads%20and%20Drivers/Z570/Win7/IN2VDO63WW5.exe 
http://download.lenovo.com/UserFiles/Driver/en/Downloads%20and%20Drivers/Z570/Win7/IN6WLN49WW5.exe 
相关问题