Команда преобразования строк в файл CSV

Ejecute apt-cache search sun-java6-jdky debería ver el nombre exacto del paquete que deberá especificar.

Y su mensaje de error parece un poco sospechoso:

Coudn't find package  sun-java6-jdk

Si realmente hay dos caracteres de espacio después de la palabra "paquete", podría significar que accidentalmente escribió Alt -Espacio o algún otro carácter invisible al comienzo del nombre del paquete. Eso podría explicar el problema. Si ese es el caso, deberá escribir el comando nuevamente :una versión recuperada del historial de comandos volverá a tener el mismo problema.

2
16.07.2019, 11:02
2 ответа
<file sed '
   :start
   s/\n$//
   t
   s/\n //
   N
   b start
  ' | sed 's/,$//'

Первый sedвыполняет цикл (:start,b start)и добавляет строки к своему пространству шаблонов(N)до тех пор, пока не будет найдена и удалена новая строка в самом конце(s/\n$//). Это указывает на то, что была прочитана пустая строка, инструмент выходит из цикла, а затем(t). На каждой итерации любой оставшийся символ новой строки (и последовательный пробел )в любом случае удаляются для объединения строк(s/\n //).

Второй sedудаляет замыкающие запятые.

1
27.01.2020, 21:58

Решение awk

awk '{if(NF){gsub(/^ |,$/,""); printf c $0; c=","}else{printf "\n"; c=""}};END{printf "\n"}'

дополнен комментариями:

{
    if(NF) { # if the line isn't empty
        gsub(/^ |,$/,""); # remove the first space and last comma
        printf c $0; # print the line (without a newline)
        c="," # set c to add a comma for the next field
    } else {
        printf "\n"; # empty line, output a newline
        c="" # don't print a comma for the next entry
    }
};
END {
    printf "\n" # finish off with a newline
}
3
27.01.2020, 21:58

Теги

Похожие вопросы