linux 往文件中插入多行

最近想要实现一个往文件中插入多行的功能,原以为很简单的一件事情,但实际操作中却发现了某些方法中的一些限制,现大略总结如下:

将一个文件file1 的内容添加到另一文件file2 中

1)使用cat 加重定向的方式添加到开始处

cat file1 file2 > temp
cat temp > file2

2)使用sed r添加到指定位置,但不能是开始处

#将文件new2.txt中的数据添加到new.txt的第一行后
sed '1r new2.txt' new.txt  

3)使用sed i 添加多行数据到指定位置,但直接添加从文件读取的内容时,则会报错

ii 添加多行数据

#在文件开始处添加两行数据
sed -i '1i a\nb' file2

content='a\nb'
sed -i '1i '$content'' file2

ii 读取文件file1的内容到变量,再添加到文件file2 中,会报错

ubuser@ubuntu:/var/www/qpy_html$ cat file1
a
bb
c
ubuser@ubuntu:/var/www/qpy_html$ content=`cat file1`
ubuser@ubuntu:/var/www/qpy_html$ sed -i '1i '$content'' file2
sed: can't read bb: No such file or directory
sed: can't read c: No such file or directory

 

posted @ 2022-05-05 10:30  声声慢43  阅读(2245)  评论(0编辑  收藏  举报