Lou*_*e79 5 sed perl text-processing
输入:
firstline
secondline
thirdline
Run Code Online (Sandbox Code Playgroud)
......这里发生了一些魔法...... :)
输出:
insertedtextfirstline
secondline
thirdline
Run Code Online (Sandbox Code Playgroud)
问题:如何将插入的文本插入到文件第一行的开头?
使用 GNU sed:
sed -i '1s/^/insertedtext/' file
Run Code Online (Sandbox Code Playgroud)
这将用插入的文本替换第一行的开头。-i替换文本file而不是将修改后的文本发送到标准输出。
如果需要考虑跨 unice 的可移植性,请使用ed:
ed file <<END
1s/^/insertedtext/
w
q
END
Run Code Online (Sandbox Code Playgroud)
POSIX 一:
$ { printf %s insertedtext; cat <./input_file; } >/tmp/output_file
$ mv -- /tmp/output_file ./input_file
Run Code Online (Sandbox Code Playgroud)