- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:sedの引数を変数に格納する方法)
sedの引数を変数に格納する方法
このQ&Aのポイント
- sedコマンドで引数を変数に格納する方法を理解したいです。
- 変数にsedコマンドの引数を格納する方法について教えてください。
- sedの引数を変数に代入する方法が分かりません。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
evalを使わないと駄目みたいです。 regex='-e "s/.*\(b.*e\).*/\1/" -e "s/.*b c *\(.*\) .*/\1/"' echo a b c d e f | eval sed $regex
その他の回答 (2)
- notnot
- ベストアンサー率47% (4900/10358)
回答No.3
>クォートが本来のクォートとして機能せず、文字として認識されるという意味でしょうか? はいそういう意味です。 A="'*'" echo $A ⇒ '*' と、クォートが効いているように見えるが、 touch "'foo'" ls ⇒ 'foo' echo $A ⇒ 'foo' と、「'*'」は「'」で始まり「'」で終わるファイル名にマッチする
質問者
お礼
そういうことでしたか。ありがとうございました。
- notnot
- ベストアンサー率47% (4900/10358)
回答No.2
>エスケープで対応できないのはなぜでしょうか? クォートを外す処理の方が、変数展開よりも先に行われるため、変数内のクォートは除去されません。なので、クォートが残ってしまい、【未知のコマンドです: 「"」】のようなエラーになります。
質問者
お礼
ご回答いただきまして、ありがとうございます。 すみません、「クォートを外す処理が展開より先に行われ、クォートが残る」のイメージが湧きません^^; クォートが本来のクォートとして機能せず、文字として認識されるという意味でしょうか?
お礼
ご回答いただきまして、ありがとうございます。 エスケープで対応できないのはなぜでしょうか? よろしくお願いいたします。