「sed」を使用して、引用符とバックスラッシュを含むファイルの文字列を置き換えるのに問題があります。
私はこれを試しましたが、成功しませんでした。
sed -e 's/"\u001b[0;31mUnkwn\u001b[0m"/"UNKWOWN"/g' file.txt
入力する:
"Vendor": "\u001b[0;31mUnknown\u001b[0m"
希望の出力:
"Vendor": "Unknown"
答え1
次のように2つのsedコマンドを接続できます。
sed 's,\\u001b\[0\;31m,,' | sed 's,\\u001b\[0m,,'
例:
$ echo '"Vendor": "\u001b[0;31mUnknown\u001b[0m"' | sed 's,\\u001b\[0\;31m,,' | sed 's,\\u001b\[0m,,'
"Vendor": "Unknown"
答え2
カラーパターンが質問で説明されているものと似ている場合は、次の解決策があります。
$ foo='"Vendor": "\u001b[0;31mUnknown\u001b[0m"'
$ echo "$foo" | sed 's/\\u[0-9a-z]*\[[;0-9]*m\(.*\)\\u[0-9a-z]*\[[;0-9]*m/\U\1/'
"Vendor": "UNKNOWN"