добавление пустой первой строки в файле CSV

Если Вы хотите использовать SPICE с kvm, необходимо будет использовать kvm от более нового Debian. И это был бы позор для использования kvm без SPICE (по крайней мере, для виртуализации настольного типа). Кроме того, Вам будет нужен более новый Debian для тонкой резервации памяти LVM, которую можно хотеть использовать в решении для виртуализации.

В данный момент (декабрь 2012), если бы необходимо установить Debian в новой системе теперь, я пошел бы для Хрипящего (будущие 7). Это замораживалось в течение некоторого времени, вероятно, будет выпущенным в первом квартале 2013, после которого Сжатие будет только сохраняться в течение одного года. Так, безотносительно проблем можно встретиться теперь с использованием Хрипящего, вероятно, будет меньшим количеством боли, чем обновление от Сжатия до Хрипящего, который необходимо будет скоро пройти.

Кроме того, если необходимо использовать пакеты от unstable, будет намного легче, если Вы используете Хрипящий в это время, чем если бы Вы используете Squeeze (например, я не уверен, что даже возможно больше в это время установить unstable libvirt от Squeeze не обновляя большинство вещей до unstable).

6
11.02.2014, 18:09
3 ответа

Существует много способов сделать это. Так как Вы не объяснили свою проблему ни с какой деталью, я предполагаю, что Вы делаете что-то вроде этого:

values=$(grep foo csv1.csv)
echo "$values" > csv2.csv

Во всяком случае Вы, кажется, извлекаете некоторые строки одного файла CSV и вставляете их в другого. Для добавления пустой строки к началу нового файла CSV Вы делаете любой из них:

echo  > csv2.csv; grep foo csv1.csv >> csv2.csv

Или, если Вы уже создали csv2.csv:

awk 'NR==1{print ""} {print}' csv2.csv > tmpfile && mv tmpfile csv2.csv

или

perl -i -lpe 'print "" if $.==1' csv2.csv 

или

sed -i '1 x;p;x;' csv2.csv 
6
27.01.2020, 20:23

Использовать sed следующим образом вставить пустую строку в начале файла x.txt:

 sed '1 i \
 ' x.txt
5
27.01.2020, 20:23

Поскольку я понимаю вопрос, существует две проблемы. Во-первых, Вы хотите пустую строку в запуске и во-вторых, Вы не хотите промежуточных пустых строк.

Первый вопрос

Для этого можно просто сделать echo "" >> filename в начале сценария.

Второй вопрос

Страница Info эха говорит

`echo' writes each given STRING to standard output, with a space
between each and a newline after the last one.

Так, новая строка, которую Вы получаете, происходит из-за предыдущего эха, которое Вы сделали. Например, echo "bulbasaur" >> network.txt вставляет "bulbasaur" и также символ новой строки (\n) в файле. Так, когда Вы делаете второе эхо как echo "charmander" >> network.txt, будет пустая строка между bulbasaur и charmander.

Удалить поведение вставки новой строки echo, использовать echo -n (См. информацию или страницу справочника эха). Можно сделать echo -n "bulbasaur" >> network.txt сопровождаемый echo -n "charmander" >> network.txt удалить вставленную новую строку.

1
27.01.2020, 20:23

Теги

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