2019-11-15 Linux下在文件内部指定行(首行、末尾行等)插入内容

2019-11-15 Linux下在文件内部指定行(首行、末尾行等)插入内容,第1张

1、在文件的首行插入指定内容

:~$ sed -i "1i#! /bin/sh -" a

执行后,在a文件的第一行插入#! /bin/sh -

2、在文件的指定行(n)插入指定内容:

:~$ sed -i "niecho "haha"" a

执行后,在a文件的第n行插入echo "haha"

3、在文件的末尾行插入指定内容:

用第二种方法也可以。一般实现:

:~$ echo “haha” >>a

执行后,在a文件的末尾行插入haha

在Linux,有几种方法可以用来向文件的末尾追加内容。

方法一、双大于号>>

结合cat把一个文件的内容追加到另外一个文件的末尾:

cat 1.txt >>2.txt

结合echo向文件的末尾追加内容:

echo "hello" >>2.txt

注意:双大于号">>"表示内容追加,但大于号">"则是覆盖目标文件的内容。

方法二、使用命令tee -a

tee -a 会输出内容到标准输出的同时,追加到文件file中。如果文件不存在,则创建;如果已经存在,就在末尾追加内容,而不是覆盖。《Linux就该这么学》一起学习

如果少了-a,则是覆盖。

结合cat把一个文件的内容追加到另外一个文件的末尾:

cat 1.txt | tee -a 2.txt

结合echo向文件的末尾追加内容:

echo "hello" | tee -a 2.txt

最近需要在一个二进制文件的前面添加一个header, 网络上大体搜索了一下, 没有得到答案。于是自己找到一个办法, 有点土,但是能用。放在这里,供参考。

如下就是我的脚本:

#!/bin/sh

output=obm.bin

rm $output

#firstly generate a header

header=0x0008ffbb

header1=`expr substr $header 9 2`

header2=`expr substr $header 7 2`

header3=`expr substr $header 5 2`

header4=`expr substr $header 3 2`

echo -n -e "/x${header1}" >$output

echo -n -e "/x${header2}" >>$output

echo -n -e "/x${header3}" >>$output

echo -n -e "/x${header4}" >>$output

#now add obm.bin

cat ../build/$output >>$output

说明:利用echo 的扩展功能, 可以一次往一个二进制文件输入一位或者两位 16进制数字。 我们把需要输入的 header 分解出来, 分别输出到二进制文件, 从而达到目的。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11965571.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-20
下一篇 2023-05-20

发表评论

登录后才能评论

评论列表(0条)

保存