2014-07-07 29 views
1

我跑了一堆在bash脚本命令的空间,我想回音命令当前正在运行:复制多个线条和文字,直到VIM

我有这个文件(这大约是100行):

nohup command1 param1 param2 
nohup command2 p1 p2 
nohup cmd3 p1 p2 param3 

我想:

echo "Running command1" ; nohup command1 param1 param2 
echo "Running command2" ; nohup command2 p1 p2 
echo "Running cmd3" ; nohup cmd3 p1 p2 param3 

我试着抽出,但它一次复制1号线,有没有办法复制的所有行的?

回答

1

正则表达式是你所需要的位置:

:%s/^\(nohup\) \([a-zA-Z0-9]*\)/echo "Running \2"; \1 \2/ 
+0

怎么说正则表达式的作品的任何解释? – Ruskin

+0

请到:帮助潜艇 :[范围] S/{图案}/{串}/ 图案: ^ - 开始行的 \(nohup的\) - 是\ 1 [A-ZA-Z0- 9] * - 所有列出的字符0或更多次 \([a-zA-Z0-9] * \) - 是\ 2 – xvedar

+0

谢谢,它的工作原理 – Erik

0

您可以录制宏。

假设你对你的文件的第一个字符,应键入:

`qa`    "Start recording a macro into a 
`w`    "move to first word following nohup 
`yiw`    "copy the word under cursor 
`^`    "move cursor back to beginning of line 
`i`    " enter insert mode 
`echo "Runnning<ESC>pi";<ESC>` "paste the previously copied word 
`j`    " go down one line 
`^`    "move cursor back to beginning of line 
`q`    " stop recording the macro 
`@a`    " rexecute macro on second line 

如果按预期方式工作,打字[email protected]@应该记得的最后一个宏98倍和文件格式。

0

为什么不使用sh set -x?

从庆典(1):

  -x  After expanding each simple command, for command, case 
        command, select command, or arithmetic for command, dis- 
        play the expanded value of PS4, followed by the command 
        and its expanded arguments or associated word list.