【问题标题】:Read in next line from file each call每次调用都从文件中读取下一行
【发布时间】:2017-04-01 16:59:38
【问题描述】:

我有一个 bash 脚本

for ((i=0; i < 2500; i++)); do
    ./program.bin < in >> out
done

每次调用它时,我都想从下一行读取。例如这是我的文件

1024 2048 3096

1045 8754 5412

5648 5457 5646

EOF

所以程序第一次通过循环获得 1024 2048 3096 作为输入。第二次通过它得到 1045 8754 5412 等等。我有一种感觉,就像我现在设置它的方式一样,它只会在第一行中不断读取。我该如何解决这个问题?

【问题讨论】:

    标签: bash scripting parameter-passing


    【解决方案1】:

    试试这个:

    while IFS= read -r line
    do
        ./program.bin <<<"$line" >> out
    done < in
    

    这将逐行读取in文件,并为每一行调用./program.bin,提供读取的值(在变量line中找到)并将其提供给程序的标准输入。

    当然,如果你正在编写这个程序,你可以让程序本身能够处理多行输入。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-01
      • 2014-01-31
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多