如何跳过文件的第一行并读取剩余的行作为C程序的输入?

时间:2016-10-19 01:46:56

标签: linux shell

如何编写shell命令跳过文件a.csv中的第一行,并将剩余的行重定向为myProgram的输入,这是我的C程序?

我写了

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

但这不起作用,似乎它会跳过myProgram输出的第一行。

3 个答案:

答案 0 :(得分:10)

如果您想跳过第一行,传统的解决方案是sed

sed -e 1d a.csv | ./myProgram

答案 1 :(得分:5)

企业风险管理...

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

答案 2 :(得分:0)

如果你的shell是Bash,它支持process substitution:一种机制,可以让你像处理文件一样处理命令的输出。因此,您可以使用

而不是您所写的内容
./myProgram < <(tail -n +2 a.csv)

您的命令改为使用完整文件a.csv作为myProgram的输入,然后将输出传递给{{ 1}}(你真的使用了tail -n + 2+之间的空格吗?)。