В 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)
Я ожидаю, что эта строка будетна одном лайке и сохраните возврат каретки нетронутым.