假设 rjp2tif
命令返回file-path在标准输出,并且你想要通过这一输出作为一个经常CLI的论点到另一个命令,你可能感兴趣的 xargs
命令。 但请注意,在一般情况下,你可能会碰到一些问题,如果该文件径包含空间或这样:
阅读的空间,tab,newline和结束的文件分隔的参数标准输入和执行指定用与他们的论点。
的参数通常是一个长长的清单的文件(由 ls
或 find
例如),获得通过, xargs
通过管道。
因此,在这种情况下,假定每个文件-路只需要一个线(其显然的情况下,如果只有一线的总体),可以使用以下 NUL
基于尖端依赖 tr
命令。
这里是命令你们会得到:
rjp2tif /path/to/rjpeg | tr '\n' '\0' | xargs -0 open -a imagej
注:我有一个GNU/Linux操作系统,所以可以你请确认它的工作在mac os?
《金融交易报告,下面是一个全面的外壳码允许一个试验两种不同的模式 xargs
:产生一个指令,每线参数(-n1
),或者一个单一命令所有的线的论点之一:
$ printf 'one \ntwo\nthree and four' | tr '\n' '\0' | xargs -0 -n1 \
bash -c 'printf "Run "; for a; do printf "\"$a\" "; done; echo' bash
Run "one "
Run "two"
Run "three and four"
$ printf 'one \ntwo\nthree and four' | tr '\n' '\0' | xargs -0 \
bash -c 'printf "Run "; for a; do printf "\"$a\" "; done; echo' bash
Run "one " "two" "three and four"
######################################
# or alternatively (with no for loop):
######################################
$ printf 'one \ntwo\nthree and four' | tr '\n' '\0' | xargs -0 -n1 \
bash -c 'printf "Run "; printf "\"%s\" " "$@"; echo' bash
Run "one "
Run "two"
Run "three and four"
$ printf 'one \ntwo\nthree and four' | tr '\n' '\0' | xargs -0 \
bash -c 'printf "Run "; printf "\"%s\" " "$@"; echo' bash
Run "one " "two" "three and four"
tr
命令你有以上不工作mac os,谢谢。 我发现的-t
选项(追踪),xargs
是有助于展示什么xargs
不会到命令。 在这里的情况,当时path/to/tiff
传递到xargs
通过管道,xargs
重新排列的命令open -a imagej path/to/tiff
. 非常有用的。