Sử dụng bash Tôi thường muốn lấy tiêu đề của tệp csv lớn và tìm phần còn lại cho một mục nhập cụ thể. Tôi làm như sau.Tại sao lấy stdin từ một tệp khác với việc nhận nó trên một đường ống?
$ (head -1; grep mike) < tmp.csv
name,age,favourite colour
mike,38,blue
Nhưng lấy đầu vào từ con mèo hoặc bất kỳ lệnh nào khác không hoạt động - có vẻ như grep không bao giờ được chuyển phần còn lại của tệp.
$ cat tmp.csv | (head -1; grep mike)
name,age,favourite colour
Tại sao có hành vi khác trong hai trường hợp này?
'wc -l test.txt' -output-> 3' (đầu -1>/dev/null; wc -l) 2.! –
danihp
Tôi có một số lý thuyết, nhưng tôi không thể tái tạo điều này với bash 3.2.48 (Darwin). Phiên bản bạn đang sử dụng? –
Đây là GNU bash, phiên bản 3.2.25 (1) -release (x86_64-redhat-linux-gnu) trên máy rhel 5.6. – tlrrd