![在文件的每一行调用脚本](https://linux22.com/image/19660/%E5%9C%A8%E6%96%87%E4%BB%B6%E7%9A%84%E6%AF%8F%E4%B8%80%E8%A1%8C%E8%B0%83%E7%94%A8%E8%84%9A%E6%9C%AC.png)
我有一个 bash 脚本,需要 3 个参数:
$ do_something foo bar baz
和一个包含多行的文件,每行都有不同的 3 个参数。
我想将脚本作为 cronjob 执行,每次调用它时,它都应该调用do_something
该文件中的一行,并向其传递该行上的三个参数。下次调用它时,它应该运行下一行,因此它将需要n
调用do_something
它来处理n
行。如果它处理了文件的最后一行,则下次应该从头开始。
我的解决方案是每次从文件的头部删除已处理的行并将其附加到尾部,但仅仅为了记住一个位置而进行所有这些磁盘写入似乎太麻烦了。我可以有另一个文件,其中包含指向最后一行的指针,但是对于一个简单的任务来说三个文件并不是那么明智。有更好的解决方案吗?
答案1
好吧,如果我必须重写该文件,至少sed
可以让我以风格来完成:
sed -i '1 { h; d }; $ G' file