如何在文件的第一行添加新的文本行?

如何在文件的第一行添加新的文本行?

文件:

TABLE1

1234 
9555    
87676  
2344

预期输出:

Description of the following table:
TABLE1

1234
9555
87676
2344

答案1

实际上echocat足以做你想做的事:

echo "Description of the following table:" | cat - file

-参数告诉cat从 读取stdin

答案2

sed

$ sed -e '1i\
Description of the following table:
' <file
Description of the following table:
TABLE1

1234
9555
87676
2344

答案3

printf "%s\n" 1 i "Description of the following table:" . w | ed filename

输出命令(每行一个) printfed然后通过管道传输到ed filename.

ed按照指示编辑文件:

1                                        # go to line 1
i                                        # enter insert mode
Description of the following table:      # text to insert
.                                        # end insert mode
w                                        # write file to disk

顺便说一句,ed执行真正的就地编辑,而不是像sed大多数其他文本编辑工具那样写入临时文件并移动。编辑后的文件在文件系统中保留相同的 inode。

答案4

awk 选项是:

gawk '
      BEGIN{print "Description of the following table:"}
      {print $0}' file > temp && mv temp file

这里比 sed 多一点工作,因为 sed 有一个就地编辑选项 -i,您可以通过它直接写入文件。

相关内容