【发布时间】:2012-05-09 13:06:33
【问题描述】:
这对我来说很新,但是我正在慢慢地接受它。
我需要打开一个文件,将第一行返回给 var 做一些事情,然后在事情成功后从文件中删除第一行。
在 mt 脚本中,除了第一行之外,这里将所有内容都打印到屏幕上。
$file = 'test.txt';
system "tail -n+2 /home/username/public_html/adir/$file";
现在我在这里做了一些探索,发现:
system "sed -i '1d' home/username/public_html/adir/$file";
这应该删除内联文件的第一行。 (我没试过)
如果我也可以将第一行返回到 $variable 来做事,那就完美了。
如果事情失败了,我可以将这一行重新添加到文件中。
我知道我可以用一堆 FILE 用数组来做到这一点,但似乎有点多。
文件很小,不到 100 行,每行 6 个字符。
我是否完全不知道为此追求 sed 或 tail?
如何使用这些系统调用将删除的行作为 $line 返回?
感谢您的学习体验。
【问题讨论】:
-
您想使用 perl 还是使用 sed 和 tail 的 shell 脚本?请不要使用 perl 来调用系统。
-
我真的不知道。我试过了,它返回了结果。该脚本是一个基于服务器的 Perl 脚本,它将用户信息从另一个更新到 mysql 表。它将由 cron 触发。 $file 是需要更新的用户 ID 的列表。 id 是触发该用户/行的数据库同步的键。