我有一个在linux中运行的脚本,它只是输出到文件中的多个函数调用。我有一个功能,它是重要信息的概述我想要附加到文件的顶部以便于查看。
问题是我不能简单地首先调用这个概述函数,因为它依赖于以前的函数。
在没有创建临时文件的情况下,有更简单的方法吗?这是一个相当大的文件,需要很长时间。
答案 0 :(得分:0)
如果您使用的是类似Perl脚本的内容,则应该可以先在顶部留出一些空间用于概述,然后写下您的所有数据。
在此之后,使用write / append(w +)访问重新打开文件,使用seek()或sysseek()函数将文件句柄位置移动到文件的早期位置,然后将概述数据写入其中。 / p>
可以在此处获取有关Perl函数的帮助:http://perldoc.perl.org/perlfunc.html
答案 1 :(得分:0)
首先,也许你的意思是前置,而不是附加。
在linux中,假设你想要: file1 - > BottomContent file2 - > TopContent
您可以使用:
$ cat file2 file1 > finalfile; rm file[12]
答案 2 :(得分:0)
@SandeepY有一个合理的解决方案。
每次在Unix中修改文件时,你都在使用打开原始文件和新文件的系统,因此(几乎总是)会涉及一个临时文件,无论你是否可以看到它。
话虽这么说,另一个解决方案,就像你指定一个函数提供一些输出一样,是使用一个进程组将你的输出“编组”到一个流中,并将其重定向到你的文件中。
mv mainFile mainFile.tmp
{
myFunc
cat mainFile.tmp
} > mainFile && /bin/rm mainFile.tmp
由于您似乎经常需要这个,所以应该很容易将其转换为函数,将mainFile替换为"$1"
。
IHTH