我需要一些指导来操作作为差异结果的文本文件。我只希望在 > 分隔符(它们是文件名)之后列出那些结果,然后我将添加文件名的路径以供进一步工作。我不是在处理大文件。我希望一切都到位。
本质上我想采取这样的事情
96a97,98 > SCR-33333.sql > SCR-33333-WEB.sql
并创建一个动作
cp /add/this/path/SCR-33333.sql /to/somewhere/else
谁能给我一个我可以运行的快速示例?
我需要一些指导来操作作为差异结果的文本文件。我只希望在 > 分隔符(它们是文件名)之后列出那些结果,然后我将添加文件名的路径以供进一步工作。我不是在处理大文件。我希望一切都到位。
本质上我想采取这样的事情
96a97,98 > SCR-33333.sql > SCR-33333-WEB.sql
并创建一个动作
cp /add/this/path/SCR-33333.sql /to/somewhere/else
谁能给我一个我可以运行的快速示例?
好吧,你可以试试这个,记住它只有在文件名不包含空格的情况下才有效......
diff this that | awk '/^>/{print "/add/this/path/" $2}' | xargs -i cp {} /to/somewhere/else
(注意:这是一个单行命令。忽略由 Web 浏览器引起的换行。)
grep ">" dummy.txt | cut -f 2 -d ' ' | xargs -I{} cp /add/this/path/{} somewhere
其中 'dummy.txt' 是您的差异文件。