1

我有一个包含多列的类似 excel 的 DAT 文件,我计划使用 从中投影 3 列cut,然后进行各种其他操作(对行进行排序、过滤行等)。脚本看起来像这样:

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 | ...
4

1 回答 1

2

如果我正确理解了这个问题,DO SOMETHING HERE应该是

cat - file2.DAT

这将cat连接标准输入(从管道接收,输出cut)和另一个文件。反过来做,

cat file2.DAT -

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

于 2013-06-18T23:04:02.220 回答