加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

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

发布时间:2020-12-15 16:58:11 所属栏目:安全 来源:网络整理
导读:这可能是 a complex solution。 我正在寻找一个简单的运算符,如“”,但用于前置。 恐怕它不存在。我必须做一些事情 mv myfile tmp cat myheader tmp myfile 什么更聪明? (我不喜欢tmp文件) 下面的黑客是一个快速的off-the-cuff答案工作,并收到很多upvote
这可能是 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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读