Unescpaing огромная однострочная строка в Linux - PullRequest
1 голос
/ 12 мая 2010

Я получил огромный однострочный строковый литерал (не спрашивайте меня, как), где все экранируется (в основном), включая новые строки и двойные кавычки. Проблема в том, что я хочу оригинальную строку. Строка огромная , поэтому я даже не знаю, с чего начать. Вот что у меня есть:

"This\n is \"nice\",\nain\'t it?"

Вот что я хочу:

This
 is "nice",
ain't it?

Опять же, проблема в том, что другие вещи, чувствительные к оболочке, не экранированы (например, $ или!), И что строка составляет пару мегабайт.

Ответы [ 3 ]

2 голосов
/ 12 мая 2010

Python однострочный:

open("unescaped.txt", "w").write(eval(open("string.txt").read()))

В большинстве установок linux у вас должен быть python.

2 голосов
/ 12 мая 2010
string="This\n is \"nice\",\nain\'t it?"
string=$(printf "$string")

Или

string=$(<file.txt)
string=$(printf "$string")
1 голос
/ 12 мая 2010

Сед твой приятель.

cat huge | sed -e 's/\\n/\  << yes,hit the enter key here, the \ capture the newline
/g' -e 's/\\"/"/g' -e 's/\\'/'/g' ... > file
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...