0

このサイトのガイドに従って、名前が含まれるデータベースを除外しようとしてturnkeyいます。

find /var/lib/mysql -mindepth 1 -maxdepth 1 -type d | cut -d'/' -f5 | grep -v ^mysql\$ | tr \\\r\\\n ,\ `

このコマンドはすべてのデータベース名を返しますが、ターンキーのものを削除するにはどうすればよいですか?

4

2 に答える 2

1

表示するコマンドは、Linux / unix シェル コマンドです。もうひと踏ん張りすれば

 grep -v turnkey

「ターンキー」という単語が含まれる行は省略します。

そのようです:

find /var/lib/mysql -mindepth 1 -maxdepth 1 -type d | 
cut -d'/' -f5 | 
grep -v ^mysql\$ |
grep -v turnkey 
tr \\\r\\\n ,\ `

あなたはこれが良い考えかどうか尋ねませんでした。システムの正式な仕様の一部ではない、MySQL サーバーデーモンソフトウェアの特定のオンディスク構造に依存しているため、そうではないと思います。というか、変わるかもしれません。

あなたはこれを行うことができます:

SELECT SCHEMA_NAME FROM `information_schema`.`SCHEMATA` 
 WHERE SCHEMA_NAME NOT LIKE '%turnkey%'
 ORDER BY SCHEMA_NAME
于 2012-06-28T18:05:21.767 に答える
0

追加のユーティリティなしで、純粋な検索だけで、少し改善されたスクリプトを使用できます。

find /var/lib/mysql -mindepth 1 -maxdepth 1 -type d ! \( -name turnkey -or -name mysql \) -printf "%f "

または、バリアントを変更してステートメントに追加turnkeygrep -v、リストから除外します。

find /var/lib/mysql -mindepth 1 -maxdepth 1 -type d | cut -d'/' -f5 | grep -v "^mysql\$\|^turnkey$" | tr \\\r\\\n ,\ `
于 2012-06-28T18:05:19.670 に答える