Я не думаю, что ориентация на новую строку, не следуют двойной кавычки является надежным способом сделать что ты хочешь. Например, он не обрабатывает случаи как этот:
"abc","def
"
более надежный способ состоит, чтобы проверить, если есть нечетное число двойных кавычек в строке, и добавить следующие строки, пока это число не станет четно, то вы можете приступить к замене:
sed -E '/^("[^"]*"[^"]*)*"[^"]*$/{:a;N;/^("[^"]*"[^"]*)*$/{s/\n/<br>/g;bb};ba;};:b;' file
-E
переключает регулярки синтаксиса в ERE (регулярное выражение)
-i
изменяет содержимое файла на месте (Если вы уверены, добавьте этот переключатель)
Детали команды:
/^("[^"]*"[^"]*)*"[^"]*$/ # check if the line has an odd number of quotes
{ # when the match succeeds:
:a; # define a label "a"
N; # append the next line to the pattern space
/^("[^"]*"[^"]*)*$/ # check if the pattern space contains an even number of quotes
{ # in this case:
s/\n/<br>/g; # proceed to the replacement
bb; # go to label "b"
};
ba; # go to label "a"
};
:b; # define the label "b"
спасибо. но у меня есть especific линия только с цитатой – Jam
ABCD « „а“,» а» , что я делаю, чтобы до этой цитаты в строке 2 до конца строки 1? – Jam
Не размещать какие-либо данные в других кавычках он потеряет форматирование. Лучше вы показываете новый вход, о котором идет речь, чтобы я мог его лучше понять. – anubhava