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

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

Ответы [ 3 ]

124 голосов
/ 25 августа 2009

Команда 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

В этом случае мы выполняем обе операции в под-оболочке, чтобы объединить выходные потоки в один, который затем используется для создания или перезаписи выходного файла.

16 голосов
/ 25 августа 2009

Я предполагаю, что вы пытаетесь достичь, вставив строку после первых нескольких строк текстового файла.

head -n10 file.txt >> newfile.txt
echo "your line >> newfile.txt
tail -n +10 file.txt >> newfile.txt

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

3 голосов
/ 25 августа 2009

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

Добавление строк: используйте оператор >> (?) В Bash:

echo 'This goes at the end of the file' >> file
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...