我在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
答案 0 :(得分:1)
您可以使用awk
来实现目标,
$ awk 'length($0)==3{a=($0=="UAE")?1:0}a' file
简要说明,
a
确定是否打印记录length($0)==3
$0=="UAE"
,当且仅当length($0)!=3
时,设置a = 1,否则a = 0 a
,请保留SELECT something FROM table WITH (UPDLOCK)
/* update locks released */
以前的内容。答案 1 :(得分:0)
$ awk -v s=UAE '$0==s||p{p=(length($0)==length(s)?$0==s:p)}p' file
UAE
44444444444444444444444444
55555555555555555555555555
77777777777777777777777777
66666666666666666666666666
88888888888888888888888888
UAE
AAAAAAAAAAAAAAAAAAAAAAAAAA
BBBBBBBBBBBBBBBBBBBBBBBBBB
CCCCCCCCCCCCCCCCCCCCCCCCCC
DDDDDDDDDDDDDDDDDDDDDDDDDD
说明:
$ awk -v s=UAE ' # pass the string as variable
$0==s||p { # enable p rinting if s tring matches
p=(length($0)==length(s)?$0==s:p) # non-matching samelength string disables p
}
p' file
编辑: awk中的另一个:
$ awk -v s=UAE '$0==s||length($0)==length(s)&&$0!=s&&p{p=$0==s}p' file
UAE
44444444444444444444444444
55555555555555555555555555
77777777777777777777777777
66666666666666666666666666
88888888888888888888888888
UAE
AAAAAAAAAAAAAAAAAAAAAAAAAA
BBBBBBBBBBBBBBBBBBBBBBBBBB
CCCCCCCCCCCCCCCCCCCCCCCCCC
DDDDDDDDDDDDDDDDDDDDDDDDDD