当前位置: 技术问答>linux和unix
vim下的文件处理
来源: 互联网 发布时间:2017-01-23
本文导语: 找到匹配的一行 其中包含ABC 然后复制这一行 把ABC改成EFG 放在这一行的后面 请问如何实现? | [user3@RHEL6B tmp]$ cat test1.txt asdf111asdfadf aaaaaaaABCbbbbbbbbbb asdf111asdfadf aaaaaaaABCbbbbbbbbbb [user3@RHEL6...
找到匹配的一行 其中包含ABC
然后复制这一行 把ABC改成EFG 放在这一行的后面
请问如何实现?
然后复制这一行 把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]$
总算写出来了,虽然写得很菜
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(.*)/&r1efg2r/g
:%s/^(.*)abc(.*)/&r1efg2r/g
|
sed基础知识啊,亲。
sed '/ABC/s/ABC/EFG/p' urfile