そのため、次のような.txtファイルがあります。
TAGS aws:cloudformation:stack-name yanka-cloudformer
TAGS aws:cloudformation:logical-id WebServerSecurityGroup
SECURITYGROUPS launch-wizard-3 created 2017-04-11T15:51:41.918+09:00 sg-77aaaa10 an-dx-trainning vpc-878311e3
SECURITYGROUPS This security group was generated by AWS Marketplace and is based on recommended settin s for CentOS 6 (x86_64) - with Updates HVM version 6 2014-09-29 provided by Centos.org sg-7842031d CentOS 6 -x86_64- - with Updates HVM-6 2014-09-29-AutogenByAWSMP- 270062507952 vpc-11d10f74
SECURITYGROUPS from other cloud sg-796d1b1e rancher-demo-sg 270062507952 vpc-b4ef99d1
SECURITYGROUPS default VPC security group sg-79a4861d Cfn-Vpc-Sg-temp-SecurityGroup2DefaultSG-JLBXQ8YG4RN5 270062507952 vpc-ded6c7bb
USERIDGROUPPAIRS sg-79a4861d 270062507952
"sg"で始まるすべての値をgrepしたいです。SG-XXXXXX。どうすればいいですか?
私はこれを試しましたが、sgの長いリストを得ました。
cat hello.txt | grep -o "sg*"
sg
sg
sg
sg
すべての値が「sg」で始まるようにしたい。
このように:
sg-77aaaa10
sg-796d1b1e
sg-79a4861d
答え1
この試み:
$ grep -o 'sg-[^ ]*' ip.txt
sg-77aaaa10
sg-7842031d
sg-796d1b1e
sg-79a4861d
sg-79a4861d
[^ ]*
空白以外の文字を表します。[0-9a-f]
16進文字のみが含まれていることがわかっている場合は、次のものを使用することもできます。sort -u
またはパイプによる重複sort | uniq
排除awk '!seen[$0]++'
sg*
0 回以上の一致がs
次にあることを示します。g