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

前端之家收集整理的这篇文章主要介绍了前面一个文件一个衬垫壳?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
这可能是 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

猜你在找的Bash相关文章