Как скопировать первые несколько строк гигантского файла и добавить строку текста в конце, используя некоторые команды 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