我想把所有的行都打印出来,直到找到匹配的新行
文件:

[`odbcname`]
Driver       = /`usr`/lib/`odbc`/`libmyodbc.so`
Description  = `MyODBC`3.51 Driver `DSN`
SERVER       = my.database.server.com
PORT         =

[`MSSQLTestServer`]
Driver       = `FreeTDS`

输出:
[`odbcname`]
Driver       = /`usr`/lib/`odbc`/`libmyodbc.so`
Description  = `MyODBC` 3.51 Driver `DSN`
SERVER       = my.database.server.com
PORT         =

我试过了
cat grep '^\[odbcname]|^$'`

但我不知道如何打印所有行,直到空白。

最佳答案

$ awk -v RS= '/\[odbcname\]/' file

[odbcname]
Driver = /usr/lib/odbc/libmyodbc.so
Description = MyODBC3.51 Driver DSN
SERVER = my.database.server.com
PORT =

将记录分隔符设置为段落模式(即一个或多个空行),找到模式(并打印)。

关于linux - 如何在给定单词匹配后打印所有行,直到换行,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39729502/

10-16 20:17