_backup이라는 단어가 포함 된 데이터베이스 이름을 제외하고 mysql 서버의 모든 데이터베이스 이름의 이름을 갖고 싶습니다.grep을 사용하여 특정 데이터베이스를 필터링하는 방법
지금까지이 작업을 수행하면 데이터베이스의 모든 이름이 텍스트 파일로 제공됩니다. 이것은 centos OS 환경에서 실행됩니다.
mysql -uroot -pxpwdx -e 'show databases' | tr -d "| " | grep -v Database | grep -v information_schema | grep -v performance_schema | grep -v mysql > database.txt
"_backup"이 (가) 포함되지 않도록 편집해야합니까?
예 : 내 MySQL 서버 5 데이터베이스를 포함 말할 A) db001 b는) db001_backup20170602 C) DB002 D) db003 전자) db003_backup2017Aug
I만을 원하는의 (a), (c) 및 (d)를 database.txt 파일에 나열하십시오.
감사합니다.
이 그것에 "백업"없이 모든 데이터베이스를 줄 것이다mysql -uroot -pxpwdx -e "SELECT `schema_name` from INFORMATION_SCHEMA.SCHEMATA WHERE `SCHEMA_NAME` NOT LIKE '%backup%';"
당신은 그것을에서 "백업"을하지 않고 모든 데이터베이스를 얻기 위해이 쿼리를 사용할 수 있습니다
'그렙 -v _backup'에 여러 문자열을 grep으로하는 조항을 줄 것이다
grep
의-Ev
옵션? – salparadise@salparadise - 내가 게시 한 진술이 의미하는 바를 나에게 알려준 것에 감사드립니다. 나는 다른 곳에서 코드를 복사했지만 작동하지만 이해하지 못했습니다. 이제 database, information_schema, performance_schema 및 mysql을 포함하는 이름을 가진 데이터베이스가 텍스트 파일에 들어 가지 않음을 알게되었습니다. 그래서 내가 필요한 것은 추가 grep -v _backup뿐입니다. –