【发布时间】:2016-04-29 21:59:58
【问题描述】:
我正在使用这些命令来转换 inkscape 中的一些文件:
python dxf_input.py sample.dxf > output_ink.svg
python scour.inkscape.py output_ink.svg > output.svg
这种方法效果很好。但是,我不想创建文件“output_ink.svg”。相反,我想将此文件传递给第二个命令。
我已经尝试了很多东西。
使用 xargs:
python dxf_input.py sample.dxf | xargs python scour.inkscape.py > output.svg
scou.inkscape.py:错误:没有这样的选项:-3
python dxf_input.py sample.dxf | xargs -I{} python scour.inkscape.py {} > output.svg
xargs: 参数行太长
使用先进先出:
python scour.inkscape.py <(>(python dxf_input.py sample.dxf))
xml.parsers.expat.ExpatError:未找到元素:第 1 行,第 0 列
使用常规管道:
python dxf_input.py sample.dxf | python scour.inkscape.py > output.svg
IOError: [Errno 32] 管道损坏
到目前为止没有任何效果。
【问题讨论】:
-
您知道
scour.inkscape.py是否需要在其文件中查找吗? -
...另外,您是从哪里获得
<(>(...))语法的? -
xargs 永远不会工作。
a | xargs b- 从 a 获取输出,并将其转换为程序b的命令行参数。例如echo 1 2 3|xargs grep somefile相当于只依次运行grep somefile 1、grep somefile2、grep somefile 3。 -
@CharlesDuffy 我不认识那个。
-
这是这里的关键问题,因为不可能在 FIFO 中寻找。
标签: linux bash pipe cat inkscape