我想用sed在数据文件的顶部添加一条新行,并在该行中写入一些内容。
我尝试了How to add a blank line before the first line in a text file with awk中的建议:
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 发布于 2016-01-15 15:14:05
$ sed '1i\14' 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发布于 2016-01-15 14:50:03
基本上,您正在连接两个文件。包含一行和原始文件的文件。这是cat的一项任务
cat - file <<< 'new line'
# or
echo 'new line' | cat - file而-则代表stdin。
如果shell支持以下内容,还可以将cat与命令替换一起使用:
cat <(echo 'new line') file顺便说一句,对于sed,它应该是简单的:
sed '1i\new line' filehttps://stackoverflow.com/questions/34812929
复制相似问题