Как скопировать первые несколько строк гигантского файла и добавить строку текста в конце его с помощью некоторых команд Linux?


Как скопировать первые несколько строк гигантского файла и добавить строку текста в конце его, используя некоторые команды Linux?

3 64

3 ответа:

The первый 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 строк до 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

Если вы не хотите, чтобы остальные строки из файла, просто пропустите хвостовую часть.

первые несколько строк: man head.

добавить строки: используйте >> оператор (?) в Баш:

echo 'This goes at the end of the file' >> file