在bash中运行它。
当我阅读iconv的手册页时,它接受多个输入文件,因此
中的猫
iconv --from-code ISO_8859-1 --to-code UTF8 <( cat <(sed '/^KEYWORD INTERFACE/,$d' actors.list) <(sed '/^KEYWORD INTERFACE/,$d' actresses.list) <(sed '/^KEYWORD INTERFACE/,$d' directors.list))
不应该是必要的,但是如果我没有它,那么只有来自actors.list文件的数据出现在输出中。
答案 0 :(得分:1)
这肯定是与iconv
一起分发的glibc
中的错误。通过提供多个非mmapable命令行输入来触发该错误。
最简单的解决方法是通过将sed
的调用放入单个命令替换来提供单个输入:
iconv --from-code ISO_8859-1 --to-code UTF8 \
<(sed '/^KEYWORD INTERFACE/,$d' actors.list
sed '/^KEYWORD INTERFACE/,$d' actresses.list
sed '/^KEYWORD INTERFACE/,$d' directors.list)
在这种特殊情况下,您只需使用一个sed
命令:
iconv --from-code ISO_8859-1 --to-code UTF8 \
<(sed '/^KEYWORD INTERFACE/,$d' \
actors.list actresses.list directors.list)
当然,您也可以在OP中插入冗余的cat
。
Bug向glibc报告为https://sourceware.org/bugzilla/show_bug.cgi?id=17703