그래서 다음과 같은 .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