2013-05-03 119 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