Linux下文件头部添加内容
如果我有多个文件,如何进行合并而不去遍历文件呢? 展开
文件头部添加一行字符:
用sed的i\命令在第一行前面插入即可,加上 -i 选项直接操作文件。
sed -i '1i\Insert this line' file.txt
文件尾部添加一行字符
echo "Append this line" >> file.txt
或者复杂一点的,用awk,
awk '{print}END{print("Append this line")}' file.txt >output.txt
Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的UNIX工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。
Linux操作系统诞生于1991 年10 月5 日(这是第一次正式向外公布时间)。Linux存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。
严格来讲,Linux这个词本身只表示Linux内核,但实际上人们已经习惯了用Linux来形容整个基于Linux内核,并且使用GNU工程各种工具和数据库的操作系统。
用sed的i\命令在第一行前面插入即可,加上 -i 选项直接操作文件。
sed -i '1i\Insert this line' file.txt
文件尾部添加一行字符
echo "Append this line" >> file.txt
或者复杂一点的,用awk,
awk '{print}END{print("Append this line")}' file.txt >output.txt
多个文件合并:
$ cat a.txt
testit
haha
$ cat b.txt
123456789
123456
$ cat c.txt
Let's do it!
Just do it!!
$ cat a.txt b.txt c.txt > output.txt
$ cat output.txt
testit
haha
123456789
123456
Let's do it!
Just do it!!
在头部插入不遍历很难,文件存储结构决定,sed \a指令可以实现,但不管怎么说,文件得重新组织
多个文件的合并在现有的状况下不遍历也是不可能的(cat实际上遍历了),不过如果从inode本身的特性来看的话,是可以实现的,可惜的是目前还没有这类软件