检索一个确切的单词 - Unix

时间:2017-03-26 12:54:47

标签: shell unix

我有一个文件,其中包含相同的标题以获取不同的信息。我想提取其中一个的信息。怎么做?

实际上,我想从/ membership_number =“ID:234874”中为名为sarah的人提取编号234874,但不是他们从John那里提取相同的ID。实际上,这个数字可以是任何东西,我只是想用条件我不知道使用的确切数字:grep'234874'

2 个答案:

答案 0 :(得分:0)

试试这个:

grep -v '^$' <filename> | awk '/Information \/Name="Sarah"/ {getline; getline; print $1}' | cut -d':' -f2 | tr -d '"'

下面:

grep -v '^$' <filename>:这会删除空白行。

awk '/Information \/Name="Sarah"/ {getline; getline; print $1}':找到名称并获取会员资格。

cut -d':' -f2 | tr -d '"':这会获取确切的数字。

答案 1 :(得分:0)

这样的东西
grep -E "Name=\"Sarah\"" inputfile | grep -Eo "membership_number=\"[^\"]*" | cut -d: -f2

或将事情与

放在一起
sed -n 's/.*Name="Sarah".*membership_number="ID:\([^"]*\).*/\1/p' inputfile