Вы можете использовать sed
cat input.txt | sed -n "s!\(.*\)!'\1'!;H;\$!b;x;s!^\n!!;s!\n!,!g;p"
Читайте каждую строку (не печатает по умолчанию -p
), а затем добавить его в трюме H
- то остановку для всех строк, кроме последней \$b
. На последней строке - скопируйте пространство удержания в пространство рисунка. x
, перенесите первую строку новой строки (в этом пространстве удержания есть начало новой строки), а затем замените оставшиеся строки новой строки на «,». Наконец распечатайте пространство с рисунком p
.
Вы можете использовать PERL скрипт
#!/usr/bin/perl
my @lines = <>;
chomp(@lines);
print join(',', map { "\"$_\"" } @lines), "\n";
./script input.txt
Есть ли ДЕЙСТВИТЕЛЬНО пустая строка между каждой строкой данных на вашем входе? –