输入:
firstline
secondline
thirdline
...这里发生了一些魔法...:)
输出:
insertedtextfirstline
secondline
thirdline
问题: 怎么插入插入的文本到文件第一行的开头?
答案1
使用 GNU sed
:
sed -i '1s/^/insertedtext/' file
这会将第一行的开头替换为插入的文本。-i
替换文本file
而不是将修改后的文本发送到标准输出。
答案2
如果考虑到跨 unice 的可移植性,请使用ed
:
ed file <<END
1s/^/insertedtext/
w
q
END
答案3
POSIX一:
$ { printf %s insertedtext; cat <./input_file; } >/tmp/output_file
$ mv -- /tmp/output_file ./input_file
答案4
另一种变化 - 或多或少正确,只是品味问题:
awk 'BEGIN{printf "insertedtext"};{print $0}' file1.txt > file2.txt