2013-06-18 28 views
1

我有一个带多列的excel-like DAT文件,我计划使用cut来投影它的3列,然后进行各种其他操作(排序行,过滤行等)。该脚本看起来像这样:Ksh:将一个文件追加到另一个管道内的最佳方式

cut -f1,2,3 -d"|" file1.DAT | 
    sort -r | 
     sort -u -k1,1 | 
      sed "s/ //g" | ... > res 

我有更多的内容第二个DAT文件;这个文件已经有我需要的3列。
问题是,我如何在管道中追加(或预先)第一个文件,以便继续对组合文件进行排序? (最好不要创建临时文件)

这种形式有可能吗?

cut -f1,2,3 -d"|" file1.DAT | 
    DO SOMETING HERE | 
     sort -r | 
      sort -u -k1,1 | ... 

回答

2

如果我理解正确的问题,DO SOMETHING HERE

cat - file2.DAT 

这将精读cat enate标准输入(从管道收到的cut输出)和其他文件。要单独做的其他方式,

cat file2.DAT - 

-代表几个工具(catdiff,并tar例如)标准输入或标准输出。由于cat以命名顺序将文件复制到标准输出,您可以将标准输入复制到序列中您想要的任何位置。

+0

有点晚了,但是这个伎俩,非常感谢! – jh314

相关问题