为什么sed删除最后一行?

Vol*_*lyy 5 unix sed

$ cat file.txt
one
two
three
$ cat file.txt | sed "s/one/1/"
1
two
Run Code Online (Sandbox Code Playgroud)

"三"字在哪里?

更新:"三"字后面没有任何一行.

Iva*_*uev 1

我猜最后一行之后没有新行字符。sed在最后一行之后没有找到行分隔符并忽略它。

更新

我建议你用 perl 重写它(如果你安装了它):

cat file.txt | perl -pe 's/one/1/'
Run Code Online (Sandbox Code Playgroud)