unix系统管理员工具包: 充分利用 zsh
2007-05-11 08:12:58 来源:WEB开发网在 zsh 中,您可以使用清单 18。
清单 18. 在 zsh 中重定向到文件和标准输出zsh$ ls >fileone |cat
barney
barney.c
barney.o
betty.c
betty.h
fileone
fred
fred.c
fred.h
fred.o
wilma.c
作为进程替换的扩展,通过使用 <(list) 和 >(list) 构造,您还可以针对另一个命令进行重定向(请参见清单 19)。
清单 19. 使用 < 和 > 来针对另一个命令进行重定向zsh$ sort <(ls) <(ls /usr)
X11R6
barney
barney.c
barney.o
betty.c
betty.h
bin
fileone
fred
fred.c
fred.h
fred.o
include
lib
libexec
local
sbin
share
standalone
wilma.c
在清单 19 中,您将两个 ls 命令的输出组合为 sort 命令的标准输入,从而输出两个不同目录中的文件的混合和排序列表。
此功能的一个典型使用场合是使用剪切和粘贴来将一个文件中的字段提取并重新组合到另一个文件中。对于普通的 Shell,您可能会使用许多临时文件(请参见清单 20)。
清单 20. 使用临时文件来将一个文件中的字段提取并重新组合到另一个文件中$ cut -f1 fileone >t1
$ cut -f5 filetone >t5
$ paste t1 t5
在 zsh中,您无需临时文件即可完成此任务,如清单 21 所示。
清单 21. 在 zsh 中剪切和粘贴以提取和重新组合文件中的字段zsh$ paste -d: <(cut -d: -f1 /etc/passwd) <(cut -d: -f5 /etc/passwd)
此外,由于可以容易地嵌套重定向的替换,您可以创建复杂的结构,例如以与源文件不同的顺序组合 passwd 文件中的两个字段、删除注释,然后对它们排序(请参见清单 22)。
更多精彩
赞助商链接