これは簡単なはずです。入力ファイルではなく、リテラル文字列に対してsedを実行したいのです。なぜだろうかと思ったら、たとえばテキストデータではなく、変数に保存されている値を編集するなどです。
私がする時:
sed 's/,/','/g' "A,B,C"
ここで、A、B、Cは、A '、' B '、' Cに変更するリテラルです
私は得る
Can't open A,B,C
A、B、Cがファイルであると考えるように。
パイピングしてエコーしました:
echo "A,B,C" | sed 's/,/','/g'
プロンプトが表示されます。
それを行う正しい方法は何ですか?
あなたが望むように動作します:
echo "A,B,C" | sed s/,/\',\'/g
Bashスクリプトで変数を使用する私のバージョン:
バックスラッシュを見つけて、スラッシュに置き換えます。
input="This has a backslash \\"
output=$(echo "$input" | sed 's,\\,/,g')
echo "$output"