No.5ベストアンサー
- 回答日時:
> 正規表現で、#の使い方を検索してもそれらしい使い方が見つからないので質問しているのですが、
今回は正規表現は全く関係ないです。
${変数//検索文字列/置換文字列}
の検索文字列の部分に書くのは正規表現じゃないです。
もし正規表現だとすると、質問文にお書きの、echo ${file1/.*/.png} だと、.* で文字列全体にマッチするのですが、それを意図して書いたわけでは無いですよね?
「ピリオドの後に任意の文字列」という意図だったのでは?それは正規表現じゃ無いです。
Zshのマニュアルだと、${name//pattern/repl} と書いてありますが、その前の部分で、pattern とは filename generation と同じと書いてあります(the same as that used for filename generation)。日本語版のあるBashのマニュアルだと同じ物が「パス名展開」となっていますが、こちらの方が分かり易いか。多くのサイトで「ワイルドカード」とか「ファイルマッチ」と書いてあったりします。ls -l *.jpg とか書くときの * の機能のことですね。
* が0文字以上の任意の文字列(正規表現の .* と同じ)
? が1文字の任意の文字(正規表現の . と同じ)
[ ] は正規表現とほぼ同じ
など。. は単なる普通の文字です。
man zshexpn の FILENAME GENERATION の節に一覧があり、そこに ## も載っています。
最初の Tacosan さんの回答に、man zshexpn のウェブ上のURLがあります。
この回答へのお礼
お礼日時:2023/08/02 15:30
14.8.1 Glob Operators
に記載がありました。探しきれてなかったので、正規表現にあるのかと
勘違いしていました。ありがとうございます。
No.4
- 回答日時:
> .[^ ]##は、${変数名##パターン}の変数展開機能で、変数名が.[^ ]で、パターンが無いという理解で良いのでしょうか?
全く違います。
「${変数名##パターン}」と「.[^ ]##」は、全く似てないですが、これが同じに見えるのでしょうか???
> > ${変数//検索文字列/置換文字列} の書式と一緒に使えるのでしょうか?
>
> ${file1//.[^ ]##/.png}
> は、まさにその書式ですけど???
とい文章が理解してもらえないとすると、お手上げです。
${変数//検索文字列/置換文字列} の書式の、
変数:file1
検索文字列:.[^ ]##
置換文字列:.png
なのですが。
No.3
- 回答日時:
「ピリオドの後に、空白以外の文字が1文字以上続く」が
.[^ ]##
に該当するという意味が通じなかったと言うことですか?
と思ったら、
> それって、変数の文字列置換機能の ${変数//検索文字列/置換文字列} の書式と一緒に使えるのでしょうか?
???
${file1//.[^ ]##/.png}
は、まさにその書式ですけど???
${file1//.[^ ]##/.png} が ${変数//検索文字列/置換文字列} に見えないとは思いもしなかったので、その旨もわざわざ書きませんでした。
「ピリオドの後に、空白以外の文字が1文字以上続く」が
.[^ ]##
に該当すると検索文字列だという意味が通じている前提だと、## は「1回以上の繰り返し」だとわかりますよね?javascript:void 0;
No.2
- 回答日時:
.* は「ピリオドの後に任意の文字列(空白でも何でも)」なので、
"dog.jpg cat.mpg" に対しては、".jpg cat.mpg"にマッチします。
その後ろに .* にマッチする文字列は無いので、/ でも // でも同じです。
拡張子が英小字3文字限定なら
echo ${file1//.[a-z][a-z][a-z]/.png}
「ピリオドの後に、空白以外の文字が1文字以上続く」だと、拡張オプションをセットして、
setopt EXTENDED_GLOB
echo ${file1//.[^ ]##/.png}
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- HTML・CSS CSSが効かずどのように指定すれば良いか分からないのでアドバイスお願い致します 2 2023/06/07 12:25
- JavaScript clear機能を失わずにファイルアップロード機能を作成したい 3 2023/06/10 16:12
- その他(ソフトウェア) 画像のファイル形式、拡張子が変わると、性能が変わると思うのですが、ファイル名の「jpg、png、do 8 2022/08/10 13:37
- PHP imageフォルダに、画像をリサイズして保存する時のファイル名を変更したい 1 2023/05/30 11:39
- PHP 共通の処理をまとめる方法がわからないのでアドバイスお願いします。 1 2022/12/19 20:20
- iPhone(アイフォーン) iphoneで撮影した写真、動画を連番のファイル名で保存したい。 1 2022/04/28 02:12
- PHP PHP MySql 画像を取得 1 2022/06/04 14:05
- その他(プログラミング・Web制作) zshの例外処理 1 2022/06/02 16:36
- UNIX・Linux Linuxについて質問です。 以下のような設定をしたMakefileを作成するにはどう記述すればよい 1 2023/02/03 20:10
- その他(プログラミング・Web制作) Leafletで画像をon、offさせる方法について 2 2022/11/01 15:34
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Linux環境 grepで改行コード(CR...
-
awkのフィールド数制限について...
-
grepでの日本語検索
-
grepで検索文字列が完全一致し...
-
grepで全角文字の行を抽出
-
SONYの音楽ソフト「x-アプリ」...
-
dd実行 途中経過
-
PowerShellってなんでイッパツ...
-
エクセルの表にヘンな枠が・・・
-
ddコマンドでイメージをコピー...
-
エクセル時間毎ごとにマクロを...
-
タスクバーの音量アイコンをク...
-
Dirコマンドでフォルダ内ファイ...
-
ラズパイで『’test.service’をs...
-
TOPコマンドで表示するCPU使用...
-
Linux(Fedora)で外付けHDDが...
-
レコーダー換装用のHDDのAVコマ...
-
pingは正常なのにtracerouteで...
-
linux でバッチファイを作成し...
-
NFS mount できず fsck もこける
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Linux環境 grepで改行コード(CR...
-
grepで全角文字の行を抽出
-
grepで日付指定してlogを取り出...
-
grepで検索文字列が完全一致し...
-
grepでの抽出箇所のみ置換して...
-
sed で \\ を含む文字列に置換
-
【シェルスクリプト】awkの結果...
-
コマンドの出力結果をn行おきに...
-
awkを用いて、特定の文字を含む...
-
awkのフィールド数制限について...
-
grepで拡張子がxlsxのファイル...
-
フィールドでgrepみたいなこと
-
awkとsedですが、これが何をし...
-
LINUXでHTML内(複数行)の<div...
-
grepで変数が使えない
-
HP-UXのメモリ搭載量を確認する...
-
LINUXで半角の英数字以外の文字...
-
シェルスクリプトで読み込んだ...
-
標準出力と標準エラー出力を時...
-
sedコマンドで範囲指定しての部...
おすすめ情報
ひとつ教えて下さい。
echo ${file1//.[^ ]##/.png}
で、
.[^ ]の後の##は何を意味するのでしょうか?
変数名とパターンの区切り文字の##なのでしょうか?
それって、変数の文字列置換機能の
${変数//検索文字列/置換文字列}
の書式と一緒に使えるのでしょうか?
理解が悪くて申し訳ないですが、
確認なのですが、
.[^ ]##
は、${変数名##パターン}の変数展開機能で、
変数名が.[^ ]で、パターンが無いという理解で良いのでしょうか?
正規表現で、#の使い方を検索してもそれらしい使い方が見つからないので質問しているのですが、
## は「1回以上の繰り返し」
という意味になるのでしょうか?