这将适用于您提供的示例。我还假设*
有趣的字符串部分并不是您输入文件的真正部分,但如果是,则需要调整:
$ cat foo.html
foo
<tr class="even"><td>FRQ\AUTO\spml-hlr601\FC122_005036_PDPContext\DB8PD073\BulkPDPModreq1</a><td align='center' class="red"></tr>
<tr class="even"><td>FRQ\AUTO\spml-hlr601\FC122_005036_PDPContext\DB8PD073\BulkPDPModreq2</a><td align='center' class="red"></tr>
bar
<tr class="even"><td>FRQ\AUTO\spml-hlr601\FC122_005036_PDPContext\DB8PD073\BulkPDPModreq3</a><td align='center' class="red"></tr>
<tr class="even"><td>FRQ\AUTO\spml-hlr601\FC122_005036_PDPContext\DB8PD073\BulkPDPModreq4</a><td align='center' class="red"></tr>
quux
.
$ grep 'class="red"' foo.html \
| sed 's#.*<td>##g;s#</a>.*##g;s#\\#/#g' \
| xargs -I% echo cp -r /home/hlrci/%/* /home/hlrci/CopyReq/
cp -r /home/hlrci/FRQ/AUTO/spml-hlr601/FC122_005036_PDPContext/DB8PD073/BulkPDPModreq1/* /home/hlrci/CopyReq/
cp -r /home/hlrci/FRQ/AUTO/spml-hlr601/FC122_005036_PDPContext/DB8PD073/BulkPDPModreq2/* /home/hlrci/CopyReq/
cp -r /home/hlrci/FRQ/AUTO/spml-hlr601/FC122_005036_PDPContext/DB8PD073/BulkPDPModreq3/* /home/hlrci/CopyReq/
cp -r /home/hlrci/FRQ/AUTO/spml-hlr601/FC122_005036_PDPContext/DB8PD073/BulkPDPModreq4/* /home/hlrci/CopyReq/
这将搜索class="red"
in foo.html
( grep
),删除所有内容,包括从每一行 ( )<td>
开始和包括在内的所有内容,读取每一行并围绕它制作一个命令来复制您的文件。根据输入文件以及您可能拥有/想要的情况和偏好</a>
sed
cp
- 调整
sed
正则表达式或使其更具体
- 使用其他东西而不是
cp
实际复制你的东西(tar
,,,, cpio
... rsync
)
Dryrun ,echo
如果您对输出感到满意,请删除echo
并重新运行。