2016-10-19 28 views
3

如何編寫shell命令跳過文件a.csv中的第一行,並將其餘行作爲輸入重定向到myProgram,這是我的C程序?如何跳過文件的第一行並讀取其餘行作爲C程序的輸入?

我寫

./myProgram < a.csv | tail -n + 2 

但是,這並不工作,好像它會跳過輸出的第一行從myProgram

+0

那我該怎麼歸併a.csv一個叫b.csv – John

+0

新的文件,不要問其他問題註釋。 –

回答

5

呃......

tail -n +2 a.csv | ./myProgram 
-1

如果你的shell是bash,它支持process substitution:一種機制,可以讓你把一個命令的輸出,就像一個文件。因此,而不是你寫的,你可以使用

./myProgram < <(tail -n +2 a.csv) 

什麼命令沒有替代方法是使用完整文件a.csv作爲輸入到myProgram,然後通過管道將輸出到tail -n + 2(難道你真的使用在+2之間的空格?)。

7

如果你想跳過第一線,傳統的解決方案是sed

sed -e 1d a.csv | ./myProgram 
相關問題