2014-11-04 94 views
0

我想使用bash script将标题添加到ascii文件。没有使临时文本文件做到这一点的最短途径是什么?将标题添加到ASCII目录

+0

提示:使用'sed' – anubhava 2014-11-04 10:52:41

+0

@anubhava我知道'sed'可以使用,但我不知道如何命令行应该是。 – Dalek 2014-11-04 10:53:59

回答

4

你可以试试这个方法

sed '1 i\Header' FileName 

例子:

seq 5 | sed '1 i\\tHeader' 

输出:

Header 
1 
2 
3 
4 
5 
+1

值得一提的是,这不适用于所有版本的sed。在某些版本中,您需要在'i \'后添加一个换行符。这是[POSIX定义的行为](http://pubs.opengroup.org/onlinepubs/9699919799/utilities/sed.html),因此应该可以在任何地方使用。 – 2014-11-04 11:08:22

+0

所以在GNU sed上使用'--posix'并添加一个新行 – NeronLeVelu 2014-11-04 11:38:34

1

可以使用BEGIN块awk将打印一些输出之前该文件被处理:

awk 'BEGIN{print "header text"}1' input.txt > output.txt 

换行符将被追加到标题字符串之后。如果这是不希望的,你可以用printf代替。最后的1是一个简写,这意味着文件中的所有行都被打印出来。

为了覆盖原文件,你可以只使用一个临时文件:

awk 'BEGIN{print "header text"}1' input.txt > tmp && mv tmp input.txt