用管道和换行符替换换行符

Vic*_*cky 3 text-processing

我正在使用ksh.

我有一个temp.txt包含一些管道分隔数据的文件。

one|two|three|four|five
abc|def|pqr|lmn|xyz
Run Code Online (Sandbox Code Playgroud)

从示例中可以清楚地看出,记录以最后一列中的数据值后的换行符结束。

但是,我希望记录以管道分隔符和换行符结尾,如下所示:

one|two|three|four|five|
abc|def|pqr|lmn|xyz|
Run Code Online (Sandbox Code Playgroud)

我尝试了以下命令,但仍然不成功:

tr '\n' '|\n' < temp.txt
Run Code Online (Sandbox Code Playgroud)

sed -i 's/\n/|\n/g' temp.txt
Run Code Online (Sandbox Code Playgroud)

我错过了什么吗?

ste*_*ver 9

除非您已加入行,否则\n不会出现在sed的模式空间中:行尾锚点是$

所以使用 GNU sed:

sed -i 's/$/|/' temp.txt
Run Code Online (Sandbox Code Playgroud)