gpt4 book ai didi

bash - xargs:重定向后的变量替换

转载 作者:行者123 更新时间:2023-11-29 09:04:45 25 4
gpt4 key购买 nike

我试图找到所有编码为 iso-8859-1 的文本文件并将它们转换为 UTF-8。到目前为止,我的尝试是:

find . -name '*.txt' | xargs grep 'iso-8859-1' | cut -d ':' -f1 | 
xargs iconv -f ISO-8859-1 -t UTF-8 {} > {}.converted

(明显的)问题是最后一个变量替换不起作用,因为 {} 发生在重定向之后,并且不属于 xargs。因为我只得到一个名为 {}.converted 的文件,而不是 a.txt.convertedb.txt.converted 等。如何才能我让这个工作?

注意:我在 Cygwin 上执行此操作,其中 iconv 似乎不支持 -o

最佳答案

如果你有 GNU Parallel http://www.gnu.org/software/parallel/安装后你可以这样做:

find . -name '*.txt' | parallel grep -il iso-8859-1 | parallel iconv -f ISO-8859-1 -t UTF-8 {} \> {}.converted

您可以通过以下方式简单地安装 GNU Parallel:

wget http://git.savannah.gnu.org/cgit/parallel.git/plain/src/parallel
chmod 755 parallel
cp parallel sem

观看 GNU Parallel 的介绍视频以了解更多信息: https://www.youtube.com/playlist?list=PL284C9FF2488BC6D1

关于bash - xargs:重定向后的变量替换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8986083/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com