我将如何使用 sed 或 awk 来提取文件中的某些行

use*_*029 2 sed awk search files

如果我想搜索文件中以日期开头的所有行,例如“May 1”,我将如何使用 sed 或 awk 进行搜索?我需要提取这些数据并发送到屏幕或文件。谢谢。

Joh*_*024 7

提取以 开头的行May 1

grep "^May 1\b" file
Run Code Online (Sandbox Code Playgroud)

或者:

sed -n '/^May 1\>/p' file
Run Code Online (Sandbox Code Playgroud)

或者:

awk '/^May 1\>/' file
Run Code Online (Sandbox Code Playgroud)

以上两个假设一个工具,例如 GNU awk 或 sed,支持\>作为词边界正则表达式。单词边界的目的是防止正则表达式匹配,例如,May 10

更多的

如果您正在寻找五月的任何一天:

grep -E "^May [[:digit:]]{1,2}\b" file
Run Code Online (Sandbox Code Playgroud)

如果您正在寻找任何一个月的任何一天:

grep -E "^(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [[:digit:]]{1,2}\b" file
Run Code Online (Sandbox Code Playgroud)