【发布时间】:2011-10-13 06:52:23
【问题描述】:
如何在不设置 IFS 的情况下使用 zsh 遍历命令输出的所有行?
原因是我想对命令输出的每个文件运行一个命令,而其中一些文件包含空格。
例如,给定已删除的文件:
foo/bar baz/gamma
即单个目录“foo”,包含一个子目录“bar baz”,包含一个文件“gamma”。
然后运行:
git ls-files --deleted | xargs ls
将报告该文件作为两个文件处理:“foo/bar”和“/baz/gamma”。
我需要它作为一个文件处理它:'foo/bar baz/gamma'。
【问题讨论】:
-
你的系统有xargs命令吗?
-
@lunixboches:是的,确实如此 - 但是,它仍然无法正确处理这些行。
-
git ls-files -z | xargs -0 ls将使用空 (\0) 分隔符而不是空格 -
@lunixbochs:也谢谢你。 :)