0

我有一个在 linux 中运行的脚本,它只是将多个函数调用输出到一个文件中。我有一个功能是重要信息的概述,我想将其附加到文件的顶部以便于查看。

问题是我不能简单地首先调用这个概述函数,因为它依赖于以前的函数。

有没有更简单的方法可以在不创建临时文件的情况下做到这一点?这是一个相当大的文件,需要很长时间。

4

3 回答 3

0

如果您使用的是 Perl 脚本之类的东西,应该可以先在顶部留一些空间用于概述,然后写入所有数据。

在此之后,使用写入/追加 (w+) 访问重新打开文件,使用 seek() 或 sysseek() 函数将文件句柄位置移动到文件早期的所需位置,然后将概览数据写入其中。

可以在此处获得有关 Perl 函数的帮助:http: //perldoc.perl.org/perlfunc.html

于 2013-06-14T19:26:45.620 回答
0

@SandeepY 有一个合理的解决方案。

每当您在 Unix 中修改文件时,您使用的系统会打开原始文件和新文件,因此(几乎总是)涉及到一个临时文件,无论您是否可以看到它。

话虽如此,另一种解决方案,正如您指定的函数提供一些输出,是使用进程组将您的输出“编组”到一个流中,并将其重定向到您的文件中。

 mv mainFile mainFile.tmp
 {
   myFunc 
   cat mainFile.tmp
 } > mainFile && /bin/rm mainFile.tmp

由于您似乎经常需要它,所以应该很容易将它变成一个函数,将 mainFile 替换为"$1".

IHTH

于 2013-06-14T22:22:02.710 回答
0

首先,也许您的意思是前置,而不是附加。

在 linux 中,假设你想要:file1 -> BottomContent file2 -> TopContent

你可以使用:

$ cat file2 file1 > finalfile; rm file[12]
于 2013-06-14T19:37:12.790 回答