3

Sedを使用して、この長い行を置き換えたいと思いました。

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 

そしてそれは動作しません。

助言がありますか?

4

2 に答える 2

3

vim何らかの理由\rで置換が必要なため、置換を次のように変更した場合:

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

それが動作します。

余分な空白を気にしない場合、これは次の場所で機能しsedます:

sed 's#http://#\n&#g' infile
于 2012-09-18T09:11:42.550 に答える
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
于 2012-09-19T00:12:05.353 に答える