2014-02-19 120 views
-1

我有一個文件,每行有一個命令。在命令中有一行總是P0......xml。我想將P0....附加到每行的末尾,前面的>>運算符和末尾的.log在行尾搜索並追加文本

例如, 如果命令是這樣的:

abcdefg hijkl mno P0qrstuv.xml wxyz abc 

我想使它:

abcdefg hijkl mno P0qrstuv.xml wxyz abc >> P0qrstuv.log 

請解釋一下你的答案儘可能準確。

回答

2

一種解決方案是在Ex模式下使用substitute命令。這應該做到這一點。

:%s/\v(P0.+\.xml).*/& >>\1.log/ 

:讓您進入Ex模式

%作用於整個文件

s做替代

\v指定的正則表達式將 「非常神奇」,而不是常規的VIM正則表達式。

(P0.+\.xml)分組文本的文件名

&插入什麼匹配

\1插入第一組(如果你有一個以上的你可以做\ 2 \ 3等)

+1

我相信你想''s/\ v((P0。+)\。xml)。* /&>> \ 2.log /' –