Unix コマンド sed が変数を置き換えます。

Unix コマンド sed が変数を置き換えます。

各値の周りの角かっこ[]と引用符を削除し、先頭と末尾に引用符を追加したいと思います。

X = ['8922','9292','3220']

次の出力が必要です。

Y = '8922,9292,3220'

どうすればいいですか?提案してください。

答え1

とても簡単です。開くかっこと引用符を一重引用符で置き換え、引用符の間のカンマをコンマで置き換え、閉じ括弧の引用符をもう一度引用符で置き換えます。

sed "s/\['/'/;s/','/,/g;s/']/'/" file

秘訣はしばしばパターンのユニークな点を見つけることです。

答え2

X値に次のように設定されたシェル変数があるとします。

X="['8922','9292','3220']"

その後、を使用して単一引用符と角かっこを削除できますtr。同時に新しい単一引用符を挿入することもできます。

Y="'$( printf '%s' "$X" | tr -d "[]'" )'" 

以下を使用すると、bash少しzsh簡潔な方法でこれを行うことができます。

Y="'${X//[][\']/}'"

関連情報