我有一个文件,其中包含相同的标题以获取不同的信息。我想提取其中一个的信息。怎么做?
实际上,我想从/ membership_number =“ID:234874”中为名为sarah的人提取编号234874,但不是他们从John那里提取相同的ID。实际上,这个数字可以是任何东西,我只是想用条件我不知道使用的确切数字:grep'234874'
答案 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