"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"