gpt4 book ai didi

Unix shell 脚本删除左括号后面的空行

转载 作者:行者123 更新时间:2023-12-01 23:07:31 27 4
gpt4 key购买 nike

我需要一个(sed、awk)shell 脚本,或者更好的是,一个 Vim 命令来删除带有单个左大括号的行后面的任何空白行。例如,

void func()
{


foo();
}

void bar()
{

helloWorld();
}

应该变成

void func()
{
foo();
}

void bar()
{
helloWorld();
}

有什么想法吗?

最佳答案

试试这个:

$ awk 'NF{f=0}/^ *{/{ f=1 } f==1 && !NF{next}1' file
void func()
{
foo();



}

一些解释:

  1. /^ *{/表示在第一个 { 之前搜索 0 个或多个空格.
  2. 然后将标志设置为 true ( f=1 )。
  3. 当读取下一行时 f是真的并且 !NF (意味着没有字段,即该行为空),使用 next 跳过行.
  4. 当下一行不是空行时(即 NF{f=0} 表示切换回标志),其余行将不会受到影响,直到下一个左大括号为止。

关于Unix shell 脚本删除左括号后面的空行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2109026/

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