스크립트를 작성 중이며 현재 입력은 다음과 같습니다.
devdb.eu-central-1.rds.amazonaws.com
dev-redis.cnwoho.ng.0001.euc1.cache.amazonaws.com
2.5
dev-redis.cnwoho.ng.0001.euc1.cache.amazonaws.com
어떻게 삭제할 수 있나요 2.5
? 이 숫자는 제한 시간이므로 개발자가 조정할 수 있으므로 임의의 값이 될 수 있습니다. 감사해요.
답변1
grep을 사용하여 원하지 않는 줄을 삭제할 수 있습니다.
grep -v '^[0-9][0-9]*\(\.[0-9][0-9]*\)\?$'
확장 정규식을 사용한 더 짧은 표현:
grep -vE '^[0-9]+(\.[0-9]+)?$'
0
in 이 선택 사항 인 경우 0.5
예를 들어 다음을 사용할 수 있습니다.
grep -vE '^([0-9]+(\.[0-9]+)?|^\.[0-9]+)$'
답변2
나는 당신의 제목을 읽었습니다. "문자열로 끝나는 모든 줄을 제외하고 모두 제거.com
"사용법은 간단해요grep
조건을 뒤집어서 "를 얻습니다.문자열로 끝나는 모든 줄 유지.com
"
grep '\.com$' file
이 grep
명령은 정규식과 일치하며 .
RE의 특수 문자(모든 단일 문자와 일치)이므로 이스케이프해야 합니다. 기호 $
는 다음과 같습니다.줄 끝.
답변3
당신은 그것을 사용할 수 있습니다 sed
:
$ sed '/^[0-9]*\.*[0-9]*$/d' file
devdb.eu-central-1.rds.amazonaws.com
dev-redis.cnwoho.ng.0001.euc1.cache.amazonaws.com
dev-redis.cnwoho.ng.0001.euc1.cache.amazonaws.com
답변4
또 다른 솔루션은 다음을 사용합니다 awk
.
awk '/\.com$/' file
이렇게 하면 으로 끝나는 줄만 인쇄됩니다 .com
.