【发布时间】:2012-01-27 12:45:21
【问题描述】:
使用 bash,我经常想要获取大型 csv 文件的标题并在其余部分中搜索特定条目。我这样做如下。
$ (head -1; grep mike) < tmp.csv
name,age,favourite colour
mike,38,blue
但是从 cat 或任何其他命令获取输入都不起作用 - 似乎 grep 永远不会传递文件的其余部分。
$ cat tmp.csv | (head -1; grep mike)
name,age,favourite colour
为什么在这两种情况下会有不同的行为?
【问题讨论】:
-
wc -l test.txt-output-> 3(head -1>/dev/null; wc -l) < test.txt-outupt-> 2. ! -
我有一些理论,但我无法用 bash 3.2.48 (Darwin) 重现这一点。你用的是哪个版本?
-
这是 GNU bash,版本 3.2.25(1)-release (x86_64-redhat-linux-gnu),在 rhel 5.6 机器上。