ワイルドカードをbashして正確にn文字に一致させる


8

正確に5文字に一致するワイルドカードがbashにあり、次のようなパターンを短くしていますか? ?????

回答:


9

未だに。

ではextglobオプション、bashいくつかの追加ksh拡張グロブ事業者ではなく、{x,y}(pattern)ものを。

ではksh93、次のものを使用します。

{5}(?)

zshextendedglobオプション:

?(#c5)

?????ただし、どれよりも短いということはありません)。

ではbash、次のことができます。

$(printf '%.0s?' {1..5})

それはほとんど改善では$IFSなく、含まれていないことに依存してい?ます。


これらのいずれかで5の変数を使用できますか?
Random832

@ Random832、はい、3つ目以外はすべてbash(sh / kshエミュレーションでksh93またはzshでも動作します)。ではbash$(seq "$n" | tr -cd '\n' | tr '\n' '?')代わりに使用できます。
ステファンChazelas

または$(yes '?' | tr -cd '?' | head -c $n)-これは楽しいです。また、$ IFSの依存関係を「引用符」で囲んで削除できませんでしたか?
Random832

@ Random832、いいえ。今回(そしておそらくそれを実行する唯一の時間です)、split+glob演算子(展開は引用符を付けずに残します)を使用しますが、glob部分(その?????パターンを展開したいだけです)は使用しません。あなたが引用した場合$(...))。そのsplit+glob演算子を引用符なし$nで使用すると$IFS、数字を含めてはならない別の要件が追加されることに注意してください。引用できるものと引用すべきもの。
ステファンChazelas
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.