日期:2014-05-16  浏览次数:20710 次

vim下的文件处理
找到匹配的一行 其中包含ABC 
然后复制这一行 把ABC改成EFG 放在这一行的后面
请问如何实现?

------解决方案--------------------
[user3@RHEL6B tmp]$ cat test1.txt 
asdf111asdfadf
aaaaaaaABCbbbbbbbbbb
asdf111asdfadf
aaaaaaaABCbbbbbbbbbb

[user3@RHEL6B tmp]$ sed "/^.*ABC.*$/! s/^.*$//" test1.txt|sed "s/ABC/EFG/g" > test2.txt 
[user3@RHEL6B tmp]$ paste -d '' test1.txt test2.txt > test.txt
[user3@RHEL6B tmp]$ cat test.txt 
asdf111asdfadf
aaaaaaaABCbbbbbbbbbbaaaaaaaEFGbbbbbbbbbb
asdf111asdfadf
aaaaaaaABCbbbbbbbbbbaaaaaaaEFGbbbbbbbbbb

[user3@RHEL6B tmp]$ 

总算写出来了,虽然写得很菜
------解决方案--------------------
使用vim:
:%s/^\(.*\)abc\(.*\)/&\r\1efg\2\r/g
------解决方案--------------------
探讨
不会了,还没试出来,等脚本高手来帮你吧