Как скопировать первые несколько строк гигантского файла и добавить в конец строку текста с помощью некоторых команд Linux?
Ответы:
Команда headможет получить первые nстроки. Варианты:
head -7 file
head -n 7 file
head -7l file
который получит первые 7 строк файла с именем "file". Используемая команда зависит от вашей версии head. Linux будет работать с первым.
Чтобы добавить строки в конец того же файла, используйте:
echo 'first line to add' >>file
echo 'second line to add' >>file
echo 'third line to add' >>file
или:
echo 'first line to add
second line to add
third line to add' >>file
сделать это одним ударом.
Итак, связав эти две идеи вместе, если вы хотите получить первые 10 строк input.txtфайла output.txtи добавить строку из пяти "="символов, вы можете использовать что-то вроде:
( head -10 input.txt ; echo '=====' ) > output.txt
В этом случае мы выполняем обе операции в суб-оболочке, чтобы объединить выходные потоки в один, который затем используется для создания или перезаписи выходного файла.
Я предполагаю, что вы пытаетесь вставить строку после первых нескольких строк текстового файла.
head -n10 file.txt >> newfile.txt
echo "your line >> newfile.txt
tail -n +10 file.txt >> newfile.txt
Если вы не хотите, чтобы остальные строки из файла, просто пропустите хвостовую часть.
(head -n10 file.txt ; echo "Some stuff" ; tail -n +10 file.txt) > newfile.txt
head -n 100 yourfile.csv > shrunkfile.csv && echo 'morelines' >> shrunkfile.csv