加入线匹配+符号,带加号的行数将有所不同。

时间:2017-03-22 22:20:57

标签: regex perl shell awk sed

我有以下输出,我想加入有加号的行。带加号的行数会有所不同。我想在Linux中使用sed或awk或任何其他工具实现这一点。

[Route("fleet/{id:guid}/selectedfleet")]
public ActionResult selectedfleet(Guid id)
{
    return null;
}

将其更改为

return null

1 个答案:

答案 0 :(得分:2)

您希望将+<whitespace><LF>替换为+<SPACE>,但前提是下一行还包含+<whitespace><LF>

不幸的是,如果您一次只读一行,则无法知道下一行包含的内容。一个常见的解决方案是保留可能需要修改的行的缓冲区,直到您知道是否需要修改它们为止。

perl -ne'
   $buf =~ s/\+\s*\n/+ / if /\+\s*$/;
   print $buf;
   $buf = $_;
   END { print $buf; }
'

(代码中的换行符可由您自行决定保留或删除。)

用法:Specifying file to process to Perl one-liner