Text-Processing

如何用新行替換單詞

  • December 9, 2019

我有一個包含以下數據的文本文件,每一行都以|END|.

T|somthing|something|END|T|something2|something2|END|

我正在嘗試用 sed 替換|END|\n行。

sed 's/\|END\|/\n/g' test.txt

但它會產生錯誤的輸出,如下所示:

T
|
s
o
m
e
...

但我想要的是這樣的:

T|somthing|something
T|something2|something2

我也試過了tr。它也沒有用。

用這個:

sed 's/|END|/\n/g' test.txt

您嘗試的內容不起作用,因為 sed 使用基本的正則表達式,並且您的 sed 實現有一個\|表示“或”的運算符(BRE 的常見擴展),因此您編寫的內容將(空字元串或END或空字元串)替換為換行符。

以下對我來說很好:

$ sed 's/|END|/\
/g' foobar
T|somthing|something
T|something2|something2

請注意,我只是在輸入鍵後加上一個反斜杠。

引用自:https://unix.stackexchange.com/questions/194050