【发布时间】:2019-04-07 10:25:12
【问题描述】:
我有一个看起来像这样的文件:
# a mess of text
Hello. Student Joe Deere has
id number 1. Over.
# some more messy text
Hello. Student Steve Michael Smith has
id number 2. Over.
# etc.
我想将(Joe Deere, 1)、(Steve Michael Smith, 2) 等对记录到一个列表中(或两个具有相同顺序的单独列表)。也就是说,我需要遍历这些对并使用名称和 ID 做一些事情。
(名称和 ID 在不同的行上,但按以下顺序排列:name1、id1、name2、id2 等在文本中)。我可以用
VAR=$(awk '/Student/,/Over/' filename.txt)
我想我知道如何用grep 提取名称和ID,但它会给我一个大块的结果
`Joe Deere 1 Steve Michael Smith 2 ...`
(甚至可能在名称和 ID 之间使用分隔符)。在这一点上,我不确定如何继续进行,而且无论如何这都不是正确的方法。
我确信awk 中有一个可以满足我需要的单行代码。可能性是无限的,文档是巨大的。
有什么建议吗?
【问题讨论】:
标签: text awk grep string-matching