当前位置:  开发笔记 > 编程语言 > 正文

如何在shell脚本中向文件添加一行?

如何解决《如何在shell脚本中向文件添加一行?》经验,为你挑选了4个好方法。

我想在现有的CSV文件中添加一行标题,然后进行编辑.我怎样才能做到这一点?

echo 'one, two, three' > testfile.csv

我想结束

column1, column2, column3
one,     two,     three

更改初始CSV输出不在我手中.

任何标准命令都可以.重要的是文件在适当的位置编辑,并在文件的开头插入行.



1> Matthew Crum..:

要回答您的原始问题,请使用sed执行以下操作:

sed -i '1icolumn1, column2, column3' testfile.csv

"1i"命令告诉sed转到第1行并在那里插入文本.

例如,-i选项使文件"就地"编辑,并且还可以使用可选参数来创建备份文件

sed -i~ '1icolumn1, column2, column3' testfile.csv

将原始文件保存在"testfile.csv~"中.


哪个版本的Unix?这不适用于经过认证的"Single UNIX Specification V3"的Mac OS X Leopard.

2> tunnuz..:

这会在文件的开头添加自定义文本:

echo 'your_custom_escaped_content' > temp_file.csv
cat testfile.csv >> temp_file.csv
mv temp_file.csv testfile.csv



3> Scottie T..:

这不使用sed,但使用>>将附加到文件.例如:

echo 'one, two, three' >> testfile.csv

编辑:要预先添加到文件,请尝试以下操作:

echo "text"|cat - yourfile > /tmp/out && mv /tmp/out yourfile

我通过Google快速搜索找到了这个.



4> mouviciel..:

据我了解,您希望先column1, column2, column3于现有的one, two, three.

我会用ed它代替sed,因为sed写在标准输出而不是文件中.

命令:

printf '0a\ncolumn1, column2, column3\n.\nw\n' | ed testfile.csv

应该做的工作.

perl -i 值得一看.

推荐阅读
贾志军
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有