前面一个文件一个衬垫壳?

这可能是 a complex solution

我正在寻找一个简单的运算符,如“>>”,但用于前置。

恐怕它不存在。我必须做一些事情

 mv myfile tmp
 cat myheader tmp > myfile

什么更聪明? (我不喜欢tmp文件)

下面的黑客是一个快速的off-the-cuff答案工作,并收到很多upVote。然后,随着问题变得越来越流行,越来越多的时间流逝,愤怒的人开始报告说,它排序工作,但奇怪的事情可能发生,或者它根本没有工作,所以它被愤怒地downVote一段时间。好好玩。

解决方案利用了您的系统上的文件描述符的确切实现,并且因为实现在nix之间显着变化,它的成功是完全系统依赖,绝对不可移植的,不应该被依赖于任何甚至是非常重要的。

现在,所有的方式的答案是:

文件(exec 3> yourfile)创建另一个文件描述符,然后写入(>& 3)似乎克服了对同一文件困境的读/写。为我工作在600K文件与awk。但是使用“cat”尝试相同的技巧失败。

将前缀作为变量传递给awk(-v TEXT =“$ text”)可以克服字面引用问题,这会阻止使用“sed”这个技巧。

#!/bin/bash
text="Hello world
What's up?"

exec 3<> yourfile && awk -v TEXT="$text" 'BEGIN {print TEXT}{print}' yourfile >&3

相关文章

用的openwrt路由器,家里宽带申请了动态公网ip,为了方便把2...
#!/bin/bashcommand1&command2&wait从Shell脚本并行...
1.先查出MAMP下面集成的PHP版本cd/Applications/MAMP/bin/ph...
1、先输入locale-a,查看一下现在已安装的语言2、若不存在如...
BashPerlTclsyntaxdiff1.进制数表示Languagebinaryoctalhexa...
正常安装了k8s后,使用kubect工具后接的命令不能直接tab补全...