linux - 如何在给定单词匹配后打印所有行直到换行符

标签 linux awk sed grep

我想在给定单词匹配后打印所有行直到换行符

文件:

[`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/

相关文章:

linux - 查找第一列的最小值和最大值 - 按第二列分组

sed 删除\t 之后行中的所有内容

regex - 如何删除一行中的单词到特定的字符模式...正则表达式

linux - Jenkins 日志卡在 <Server started in RUNNING mode> 行,同时运行 startWebLogic.sh

mysql - 如何使用其他文件中的凭据以及如何在 crons 中传递 dir 位置?

linux - gcc x64 堆栈操作

perl - 如何在 awk 或 shell 中实现这个?

java - 在java中执行awk命令

regex - 查找并替换多对字符

java - 如何为虚拟屏幕运行我的 Java 应用程序?