【发布时间】:2017-08-16 16:36:53
【问题描述】:
我在 unix 环境中有一个包含数据的文本文件,我正在使用 shell 脚本对该文件执行一些操作以获取一些特定数据。文件数据是这样的:
USA
11111111111111111111111111
22222222222222222222222222
33333333333333333333333333
UAE
44444444444444444444444444
55555555555555555555555555
77777777777777777777777777
66666666666666666666666666
88888888888888888888888888
USA
99999999999999999999999999
10101010101010101010101010
20202020202020202020202020
50050505050005050505050505
USA
20020202022222020222220202
30303333033030333030303330
UAE
AAAAAAAAAAAAAAAAAAAAAAAAAA
BBBBBBBBBBBBBBBBBBBBBBBBBB
CCCCCCCCCCCCCCCCCCCCCCCCCC
DDDDDDDDDDDDDDDDDDDDDDDDDD
NAE
DDDDDDDDDDDDDDDDDDDDDDDDDD
EEEEEEEEEEEEEEEEEEEEEEEEEE
JJJJJJJJJJJJJJJJJJJJJJJJJJ
KKKKKKKKKKKKKKKKKKKKKKKKKK
我想获取阿联酋下方的数字。即我期待这样的输出: 预期输出:
UAE
44444444444444444444444444
55555555555555555555555555
77777777777777777777777777
66666666666666666666666666
88888888888888888888888888
UAE
AAAAAAAAAAAAAAAAAAAAAAAAAA
BBBBBBBBBBBBBBBBBBBBBBBBBB
CCCCCCCCCCCCCCCCCCCCCCCCCC
DDDDDDDDDDDDDDDDDDDDDDDDDD
【问题讨论】:
-
你可以尝试用换行符分割你的字符串,然后在数组中寻找你需要找到的字符串,然后使用循环获取一些元素
-
与your xml file:
xmlstarlet sel -t -m "//X1/X2[X3='UAE']" -v 'X3' -n -v 'id' -n file.xml