grep
同様のコマンドと一致させるために非常に単純なパターンを使用したいと思います。背景はVM名リストのgrepです。たとえば、VM名のみを一覧表示するコマンドは、名前が「.local」で終わるVMを探しています。
正しいこと:
# virsh list --name | grep '\.local$'
次のようなものを使いたい
# virsh list --name | mygrep *.local
文字クラスや範囲式は必要ありませんが、シェルワイルドカードのデフォルトパターンを適用する必要があります。
*
0個以上の文字?
1つの役割のみ- パターンの始まりと終わりを暗示する文字列の始まりまたは終わりを示す追加のマーカーはありません。
- ポイントは特別な意味がありません。
.
(単純化のために、bashのファイル名ワイルドカードを最初に無視してください)
ベストアンサー1
カーニバルとして機能
mygrep() {
local pattern=$1 line
while IFS= read -r line; do
if [[ $line == $pattern ]]; then
printf '%s\n' "$line"
fi
done
}
==
オペレーターが[[...]]
いる場所パターンマッチングオペレーター。
引用:https://www.gnu.org/software/bash/manual/bash.html#index-_005b_005b
しかし、@Pankiが言ったように、スキーマを参照する必要があります。
そして一部は娯楽用です