Преобразование строк в список Python

Скорее всего, у вас нет прав на запись в каталог. Файловые операции :создают, удаляют и переименовывают все изменения каталога.

catи vimпросто изменяют содержимое файла и не требуют изменения файла. sed -iзаписывает временный файл и переименовывает его.

0
30.05.2019, 09:56
2 ответа

Поскольку вы уже можете вставлять кавычки вокруг запятых, просто добавьте ["и "]в начале и в конце:

sed 's/^/["/; s/\(,\)/"\1"/g; s/$/"]/'

Пример:

$ echo string1,string2,string3 | sed 's/^/["/; s/\(,\)/"\1"/g; s/$/"]/'
["string1","string2","string3"]
1
28.01.2020, 02:30

Вот чистое решение Баша:

$ str='string1,string2,string3'
$ echo "[\"${str//,/\",\"}\"]"
["string1","string2","string3"]

Поскольку этот подход не требует внешних утилит и подпроцессов, он должен быть быстрым.

Как это работает

Мы используем подстановку шаблона bash , чтобы заменить все запятые на ",". Поскольку "является активным символом оболочки -, мы должны экранировать его в команде:

$ echo ${str//,/\",\"}
string1","string2","string3

Последний шаг — добавить ["в начало и "]в конец строки. Таким образом:

$ echo "[\"${str//,/\",\"}\"]"
["string1","string2","string3"]
1
28.01.2020, 02:30

Теги

Похожие вопросы