Вы можете сделать это с помощью версии GNU sed
, используя расширенную поддержку регулярных выражений, как показано:
Команда -строка:
$ sed -Ee '
1b
/^("[^"]*"[^"]*)*$/!{
N;s/\n/ /;s/^/\n/;D
}
' input.csv
Результаты:
ID,Name,Text
"1","abc","Line 1"
"2","def","Line2 ""line2"",line2"
"3","ghi","line3"
Пояснение:
-E
включает расширенный режим регулярных выражений. 1b
выведет заголовок на стандартный вывод как есть. /^("[^"]*"[^"]*)*$/
будет соответствовать строке, полностью сбалансированной по отношению к двойным кавычкам. N
, и удаляем новую строку. С помощьюPOSIX
sed
вам нужно будет несколько изменить приведенное выше:
$ sed -e '
1b
/^\("[^"]*"[^"]*\)*$/b
N;s/\n/ /;H;s/.*//;x;D
' input.csv
Всего лишь дикая догадка, но просмотрите конфигурацию сети, особенно /etc/hosts. Это должно выглядеть примерно так, как в примере здесь:
http://man7.org/linux/man-pages/man5/hosts.5.html
Если файл hosts неправильно указывает на ваш компьютер, вы столкнетесь с необъяснимой медлительностью большинства приложений.