В Ubuntu удалите перевод строки \ n, но НЕ верните \ r - PullRequest
0 голосов
/ 30 сентября 2019

В Ubuntu у меня есть следующие входные данные CSV, где есть строки, которые мне нужно удалить, но оставить возврат каретки, чтобы записи оставались на отдельных строках. В блокноте ++ LF и CRLF на самом деле показывают:

"data","","AO1","AO1","9/30/2019 5:58:07 AM","data data","AO1","AO1","","","data","","","data","fndata","lndata","","datedata","data","653","datedata","","","data%","","","English","Expressive","","","","","","","9/30/2019","","","","","emdata","data","","","","","","","St.data","","citydata","data","zipdata","","0","","","","","","","","","","","","","","","","","","","","","","","","","0","","data","Lorem Ipsum data data  data

data data","","","","","","","9/30/2019 5:58:07 AM"

Я пробовал tr '\ n' '' <, но это также удаляло возврат каретки. Также пробовал sed 's / \ n //'который не вносит изменений во входной файл. </p>

Я также пытался код ниже в python, который работал в Windows, но не в Ubuntu

def replaceall(file, searchexp, replaceexp):
    backup = file + '.bak'
    os.rename(file,  backup)
    with open(backup, 'r', newline='') as source, open(file, 'w', newline='') as dest:
        for line in source:
            if searchexp in line:
                line = line.replace(searchexp, replaceexp)
            dest.write(line)

Я ожидаю, что эта строка будетна одном лайке и сохраните возврат каретки нетронутым.

1 Ответ

0 голосов
/ 02 октября 2019

Реализовано после того, как я могу в Ubuntu использовать вышеприведенный код Python, чтобы заменить \ n пробелом, затем перезапустить и заменить \ r на \ r \ n и очистить файл.

Извините зашум, но надеюсь, что это поможет кому-то еще.

...