我有一个非常大的文本文件。如果当前行末尾有单词 OR,我想将下一行合并到当前行。 例如。就像下面几行一样
somerandomstring OR
someotherrandomstring
上面两行应该变成
somerandomstring OR someotherrandomstring
只有那些行应该改变。其余线路必须保持原样。提前致谢。
请允许我进一步扩展这个问题。 我还想看看下一行是否以 OR 开头并且 OR 不在当前行的末尾,那么如何将上述情况和本例一起实现?
最佳答案
使用 GNU sed:
sed '/ OR$/{N;s/\n/ /}' file
在行尾搜索空白,然后在OR
($
) 处搜索,如果找到则将下一行 (N
) 读取到模式空间并将模式空间中的换行符(使用 s///
)替换为一个空格。
如果您想“就地”编辑文件,请使用 sed 的选项 -i
。
关于awk - 如果当前行末尾包含模式,则合并下一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45469463/