gpt4 book ai didi

linux - 在 bash 的特定行中删除换行符(将两行合并为一行)

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:20:51 25 4
gpt4 key购买 nike

我有一个来自第 3 方系统的文件,我需要更正一下。有时即将到来的文件在数据中间包含一个换行符。假设我能够找到这条损坏的线路。我需要做的只是删除换行符并将该行与上面的行连接起来(这将在我摆脱换行符时发生)。这是示例:

data_1 data_2 data_3 data_4 data_5
data_1 data_2 data_3 data_4 data_5
data_1 data_2
data_3 data_4 data_5
data_1 data_2 data_3 data_4 data_5
data_1 data_2 data_3 data_4 data_5
data_1 data_2 data_3 data_4 data_5

如您所见,第 3 行是错误的,需要通过删除换行符来修复/与第 4 行合并。我有一个简单的脚本,可以找到“错误”(太短)的行。问题是:如何从特定行中删除换行符(我有一个错误的行号)。

我尝试使用 sed (sed ':a;N;$!ba;3s/\n//' data.log),其中 s 之前的 3 是 a行号,但它不起作用。

... 或者这个问题可能有更好的解决方案。请帮忙。

最佳答案

您可以使用 sed 来做到这一点,利用新行开头的空间

sed -e '{
N
s/\n //
}' data.log

这不需要您提前知道虚假换行符的位置,但只会更正一个中断(因为如果该行被分成 3 行,它就不起作用)

关于linux - 在 bash 的特定行中删除换行符(将两行合并为一行),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14281513/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com