1. ホーム
  2. linux

[解決済み] 入力ファイルではなくリテラル文字列でsed

2022-09-21 10:56:28

質問

これは簡単なことです。 セッド を入力ファイルではなくリテラル文字列に対して実行したいのです。 なぜかというと、例えば変数に格納された値を編集するためで、必ずしもテキストデータではありません。

私がやるときは

sed 's/,/','/g' "A,B,C"

ここで、A,B,C は A','B','C' に変更したいリテラルです。

私は

Can't open A,B,C

A,B,Cをファイルだと思っているような。

echoにパイピングしてみました。

echo "A,B,C" | sed 's/,/','/g' 

プロンプトが表示される

正しい方法は何ですか?

どのように解決するのですか?

シングルクォートが競合しているので、使用します。

 echo "A,B,C" | sed "s/,/','/g"

もし バッシュ を使う場合、これも可能です ( <<<here-string ):

sed "s/,/','/g" <<< "A,B,C"

でなく

sed "s/,/','/g"  "A,B,C"

なぜなら sed 引数としてファイルを指定します。

EDIT :

もし ksh などを使うと

echo string | sed ...