2013-05-03 44 views
1

我需要一些指导来操纵差异结果的文本文件。我只想要在>分隔符(它们是文件名)之后列出的结果,然后我将为文件名添加一个路径以供进一步工作。 我不处理大文件。 我希望能做到这一切。操作文件 - bash

基本上我想利用这样的

 
96a97,98 
> SCR-33333.sql 
> SCR-33333-WEB.sql 

和创建像

cp /add/this/path/SCR-33333.sql /to/somewhere/else

动作任何人都可以请给我一个简单的例子,我可以运行?

回答

1
grep ">" dummy.txt | cut -f 2 -d ' ' | xargs -I{} cp /add/this/path/{} somewhere 

其中'dummy.txt'是您的差异文件。

+0

对剪切部分使用'cut -c3-'会更好一些 – Kevin 2013-05-03 16:29:57

+1

Sashang的例子完美地工作。非常感谢! – MoBarger 2013-05-06 16:07:18

2

好了,你可以试试这个,铭记,如果文件名不包含空格它只会工作...

diff this that | awk '/^>/{print "/add/this/path/" $2}' | xargs -i cp {} /to/somewhere/else

(注:这是一个班轮命令忽略)

+0

我不认为'xargs'的特定调用会去做所期望的... – twalberg 2013-05-03 16:05:10

+0

OOPS。感谢您指出了这一点。并纠正。 – 2013-05-03 16:10:35