sed 's/$/uniqueString/' file.old | sed 's/,/\n/g' | sed ':loop;/^\"[^\"]*$/N;s/\n/,/;/[^\"]$/t loop' | sed ':loop;N;s/\n/@/g;/uniqueString$/!b loop;s/uniqueString$//' > file.new
Эта команда использует sed
для изменения разделенного файла с уникальным разделителем. Она выполняет следующие действия:
1. sed 's/$/uniqueString/' file.old
: Добавляет «uniqueString» в конец каждой строки файла file.old
.
2. sed 's/,/\n/g'
: Заменяет все запятые на новую строку, преобразуя файл в столбцы.
3. sed ':loop;/^\"[^\"]*$/N;s/\n/,/;/[^\"]$/t loop'
: Обрабатывает строки внутри двойных кавычек, заменяя новую строку на запятую, чтобы вернуть исходный формат.
4. sed ':loop;N;s/\n/@/g;/uniqueString$/!b loop;s/uniqueString$//'
: Заменяет новую строку на символ ‘@’, восстанавливает «uniqueString», и удаляет его.
5. > file.new
: Результат выводится в файл file.new
.
Эта команда полезна для обработки разделенных файлов с уникальными разделителями, восстанавливая исходный формат данных. Альтернативой может быть использование скрипта на Python или других языках программирования для более сложных манипуляций с данными.