Как скопировать первые несколько строк гигантского файла и добавить строку текста в конце, используя некоторые команды Linux?
Как скопировать первые несколько строк гигантского файла и добавить строку текста в конце ее, используя некоторые команды Linux?
Ответ 1
Команда 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
В этом случае мы выполняем обе операции в под-оболочке, чтобы объединить выходные потоки в один, который затем используется для создания или перезаписывания выходного файла.
Ответ 2
Я предполагаю, что вы пытаетесь достичь, это вставить строку после первых нескольких строк текстового файла.
head -n10 file.txt >> newfile.txt
echo "your line >> newfile.txt
tail -n +10 file.txt >> newfile.txt
Если вы не хотите оставлять строки из файла, просто пропустите хвостовую часть.
Ответ 3
Первые несколько строк: man head.
Добавить строки: используйте оператор >> (?) в Bash:
echo 'This goes at the end of the file' >> file