Как и Джейми, я не думаю, что sed хорош для работы.Вполне возможно, что мой навык Sed не достаточно хорош для работы.Вот решение, которое по сути такое же, как у Джейми, но в Python:
#!/usr/bin/env python
# Script to delete spaces within the double quotes, but not outside.
QUOTE = '"'
SPACE = ' '
file = open('data', 'r')
for line in file:
line = line.rstrip('\r\n')
newline = ''
inside_quote = False
for char in list(line):
if char == QUOTE:
inside_quote = not inside_quote
if not (char == SPACE and inside_quote):
newline += char
print(newline)
file.close()
Сохраните этот скрипт в файл, скажем, rmspaces.py.Затем вы можете вызвать скрипт из командной строки:
python rmspaces.py
Обратите внимание, что скрипт предполагает, что данные находятся в файле с именем data .Вы можете изменить скрипт по вкусу.