繁体   English   中英

如何将sed的输出传递到cp命令?

[英]How to pass output from sed into cp command?

从概念上讲,我想实现以下目标:

sed 's|<pattern>|<replace>|' <filename> --> cp <sedoutput> <somewhere>

总的来说:我想将sed的每一行都传递给另一个不接受管道的命令,因此xargs可能不适用。 也许有时候我甚至想在第二个命令的参数列表中放置多个位置。 可能吗?

您可以使用command substitution

cp "$(sed 's|<pattern>|<replace>|' filename)" somewhere

如果sed产生多行输出,则使用process substitution

while read -r f; do
    cp "$f" somewhere
done < <(sed 's|<pattern>|<replace>|' filename)
sed 's|<pattern>|<replace>|' filename | while read EachOccurrence
 do
   cp "${EachOccurrence}" "${somewhere}"
 done

读取需求也许-r是输入行中的\\

只需使用xargs

sed 's|<pattern>|<replace>|' file | xargs -i{} cp {} somewhere

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM