我有一个这样的文件:
something
import (
"foo1"
"foo2"
"foo3"
"bar"
"baz"
)
something
something
我想要一个 shell 命令,结果会将文件更改为:
something
import (
"foo1"
"foo2"
"foo3"
"bar"
"baz"
)
something
something
或者换句话说,删除到import (
结束范围内的空行)
并保留前后的空行。
答案1
sed
适合于此:
sed '/^import/,/^[[:space:]]*)/ { /^[[:space:]]*$/ d; }'
此命令指示sed
删除 ( )位于从“import”开始并以右括号 ( ) 结尾的行块内的d
每个空行 ( )/^[[:space:]]*$/
/^import/,/^[[:space:]]*)/