Text 使用sed向文件中添加新行

Text 使用sed向文件中添加新行,text,awk,sed,scripting,newline,Text,Awk,Sed,Scripting,Newline,我想用sed在数据文件的顶部添加一行新行,并在该行中写入一些内容 我尝试了以下建议: sed'1i\ \'./filename.txt 但它在文件的第一行开始处打印了一个反斜杠,而不是创建一个新行。如果我试图将其全部放在同一行上,终端也会抛出一个错误(“1i\”:在I命令末尾的\之后额外的字符) 输入: 1 2 3 4 1 2 3 4 1 2 3 4 预期产量 14 1 2 3 4 1 2 3 4 1 2 3 4 基本上是连接两个文件。包含一行和原始文件的文件。根据其名称,这是

我想用sed在数据文件的顶部添加一行新行,并在该行中写入一些内容

我尝试了以下建议:

sed'1i\
\'./filename.txt

但它在文件的第一行开始处打印了一个反斜杠,而不是创建一个新行。如果我试图将其全部放在同一行上,终端也会抛出一个错误(“1i\”:在I命令末尾的\之后额外的字符)

输入:

1 2 3 4 
1 2 3 4 
1 2 3 4 
预期产量

14
1 2 3 4 
1 2 3 4 
1 2 3 4 

基本上是连接两个文件。包含一行和原始文件的文件。根据其名称,这是
cat
的任务:

cat - file <<< 'new line'
# or 
echo 'new line' | cat - file
顺便说一句,使用
sed
应该是:

sed '1i\new line' file

基本上是连接两个文件。包含一行和原始文件的文件。根据其名称,这是
cat
的任务:

cat - file <<< 'new line'
# or 
echo 'new line' | cat - file
顺便说一句,使用
sed
应该是:

sed '1i\new line' file
但只需使用awk即可实现软件的清晰性、简单性、可扩展性、健壮性、可移植性和所有其他理想特性:

$ awk 'NR==1{print "14"} {print}' file
14
1 2 3 4
1 2 3 4
1 2 3 4
但只需使用awk即可实现软件的清晰性、简单性、可扩展性、健壮性、可移植性和所有其他理想特性:

$ awk 'NR==1{print "14"} {print}' file
14
1 2 3 4
1 2 3 4
1 2 3 4

对不起,现在再解释。awk有效;非常感谢。知道为什么sed不能用吗?我的输入是一个文本文件,每行有三个数字,单间距。我正试图在一个空的新顶行上写一个数字。改为将数字追加到新行数字的前面。
sed
的这一角标准化较差;在一个地方起作用的东西在另一个地方不起作用。对不起,现在再解释一下;非常感谢。知道为什么sed不能用吗?我的输入是一个文本文件,每行有三个数字,单间距。我正试图在一个空的新顶行上写一个数字。改为将数字追加到新行数字的前面。
sed
的这一角标准化较差;在一个地方起作用的东西在另一个地方不起作用。在这种情况下,我建议使用
sed
。使用
awk
有什么好处?我的意思是你正在编辑一个流..就像我说的,我并不是说它很流畅-清晰,简单,可扩展性,健壮性,可移植性,以及软件的所有其他可取属性。有许多工具可以编辑流,包括awk。您无法轻松地增强/重用sed命令来处理多行、添加条件或执行任何其他操作,但可以使用awk命令。我甚至不确定sed命令是否能在所有sed中工作。sed是对单个行进行简单替换的最佳选择,但与20世纪70年代早期sed被发明用于流的
ed
不同,它不再适用于其他任何东西。我不同意这一点。对于多行,尤其是要连接的内容是动态的,最健壮的解决方案是使用
cat
,这就是我添加该选项的原因。否则,
sed
就是完美的,并且就是为了这个目的。
awk
有各种各样的任务非常适合,我是一个超级粉丝,但我们不需要使用
awk
来完成它所能做的一切。让我承认
awk'1'file1 file2
cat file1 file2
一样健壮。但是嘿!,出于这个原因,您会替换
cat
命令吗?我很清楚gawk有这个功能,请参阅了解它为什么有这个功能;-)。任何没有gawk 4.3的发行版都缺少很多有用的功能——它们最终会迎头赶上。在这种情况下,我建议使用
sed
。使用
awk
有什么好处?我的意思是你正在编辑一个流..就像我说的,我并不是说它很流畅-清晰,简单,可扩展性,健壮性,可移植性,以及软件的所有其他可取属性。有许多工具可以编辑流,包括awk。您无法轻松地增强/重用sed命令来处理多行、添加条件或执行任何其他操作,但可以使用awk命令。我甚至不确定sed命令是否能在所有sed中工作。sed是对单个行进行简单替换的最佳选择,但与20世纪70年代早期sed被发明用于流的
ed
不同,它不再适用于其他任何东西。我不同意这一点。对于多行,尤其是要连接的内容是动态的,最健壮的解决方案是使用
cat
,这就是我添加该选项的原因。否则,
sed
就是完美的,并且就是为了这个目的。
awk
有各种各样的任务非常适合,我是一个超级粉丝,但我们不需要使用
awk
来完成它所能做的一切。让我承认
awk'1'file1 file2
cat file1 file2
一样健壮。但是嘿!,出于这个原因,您会替换
cat
命令吗?我很清楚gawk有这个功能,请参阅了解它为什么有这个功能;-)。任何发行版没有的Gawk4.3都缺少很多有用的功能——它们最终会迎头赶上。