0

假设我有一个文件名 foo.txt,它包含以下信息。

Notification are enabled
Notification:445
Mode: valid
Bookmark are enabled
Bookmarks:556
Mode: Invalid
Question are enabled
Question:667
Mode: Unknown

我想 grep/awk/sed 以下信息。我需要这样的结果

                   "Notification is Valid"
                   "Bookmark is Invalid"
                   "Question is Unknown"

如果您还需要什么,请告诉我。谢谢你。

4

2 回答 2

1

如果我正确理解你想要什么,这样的事情可能会起作用:

awk '/enabled/{g=$1}/Mode:/{printf "%s is %s\n",g,$NF}' foo.txt

至少根据您给出的示例,这应该有效。如果您必须处理disabled或除 之外的其他任何事情enabled,那将使它变得更加复杂...

于 2013-03-12T19:44:51.233 回答
0

假设 foo.txt 并且我们想要提取每 3 行的第一个和最后一个单词,其中包含 6 个“组”,这些“组”由 \n 字符表达式的空格分隔,使用 xargs:

xargs -n6 < foo.txt

“线性化”内容,并给出:

Notification are enabled Notification:445 Mode: valid
Bookmark are enabled Bookmarks:556 Mode: Invalid
Question are enabled Question:667 Mode: Unknown

将此内容通过管道传输到 awk:

xargs -n6 < foo.txt | awk '{print $1" is "$6}'

我猜它提供了一些与您正在寻找的东西相近的东西:

Notification is valid
Bookmark is Invalid
Question is Unknown

高温高压

于 2013-12-01T22:38:34.147 回答