
bash上で
$ echo $str | grep -P '^.*?\\".*?[^\\]"'
というgrepでの最短検索を
$ Result=`echo $Str | grep -P '^.*?\\".*?[^\\]"'`
と変数に設定しようとすると
grep: missing terminating ] for character class
というエラーとなります。
]の前に\を置くとエラーになりません。
$ Result=`echo $Str | grep -P '^.*?\\".*?[^\\\]"'`
一方、
$ Result=$(echo $Str | grep -P '^.*?\\".*?[^\\]"')
とするとエラーになりません。
バッククォートは文字列の展開にどのように作用するのでしょうか?
2018年7月19日
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- UNIX・Linux bashでブランク(空白)を検索文字列として指定する方法 1 2022/04/13 22:29
- UNIX・Linux Linuxのbash環境下です。 1 2022/11/27 12:31
- UNIX・Linux 次の要件を満たすにはどのように修正したらよろしいでしょうか 1 2022/11/24 20:57
- その他(プログラミング・Web制作) bashのgrepで複数の検索、かつスクリプト内で改行する方法を教えてください。 1 2022/10/06 20:09
- PHP php テーブルが作成できない 1 2022/11/17 23:41
- PHP PHP一覧表示した項目にリンクをはりたい 1 2023/07/12 17:08
- MySQL php テーブルを作れない 2 2022/11/17 18:22
- C言語・C++・C# c言語配列の結合についてです。 なぜうまくいかないのでしょうか。 #include <stdio.h 4 2022/05/30 22:42
- C言語・C++・C# 宣言する関数の形が決まっている状態で、 str1とstr2の文字列をこの順に引っ付けてstrに保存し 2 2022/05/30 18:21
- オープンソース Python openpyxlを使用したセル番地の使用について 1 2023/08/03 22:05
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ログにserver reached MaxReque...
-
市販DVD再生ができません。ubun...
-
ファイルにこれ以上データがあ...
-
makeコマンドのエラーについて(
-
xcpoyコマンドでコピーエラーし...
-
ビット落ちとは一体何なのでし...
-
Windows10でフォルダー名が変...
-
日本語フォルダ名をワイルドカ...
-
バッククォートによるコマンド...
-
オーバークロックソフトのエラ...
-
ShellScriptの初歩
-
ubuntu apt, apt-getのUpdate時...
-
Apacheエラー 「(24)Too many o...
-
Windows Server 2008 R2 Standa...
-
PC版フォートナイトをインスト...
-
エラー・・クラスはオートメー...
-
win2000のインストール時のエラー
-
robocopy構文について
-
LyricsMasterでエラーが出てし...
-
同一LAN内からapacheにアクセス...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
市販DVD再生ができません。ubun...
-
ログにserver reached MaxReque...
-
特定の Web サイトにアクセスで...
-
ubuntu apt, apt-getのUpdate時...
-
makeコマンドのエラーについて(
-
VMwareにCentOSをインストール...
-
マザーボードの赤いランプの意...
-
robocopy構文について
-
UNIX(Cシェル)での数値...
-
OLEPRO32.DLLが原因で…アプリケ...
-
同一LAN内からapacheにアクセス...
-
毎回同じログオンスクリプト(...
-
ネットワーク ロケーション の...
-
Androidのログ
-
冗長の失敗した場合の対処
-
bugsplatというソフトがパソコ...
-
時刻がかなり狂う。同期エラー...
-
HDDエラーチェック情報(Crystal...
-
ファイルサイズが取得できない...
-
数年前からWindows10 の Update...
おすすめ情報
set -x を実行してからgrepすると下記となります。
展開後の [^\]" は、 \] によって ] が単なる文字に認識されるということでしょうか。
$ set -x
$ Result=`echo $Str | grep -P '^.*?\\".*?[^\\]"'`
++ grep --color=auto -P '^.*?\".*?[^\]"'
grep: missing terminating ] for character class
bashのマニュアルというのは次の部分なんでしょうね。
When the old-style backquote form of substitution is used, backslash retains its literal meaning except when followed by $, `, or \.