Як скопіювати кілька перших рядків гігантського файлу та додати рядок тексту в кінці його, використовуючи деякі команди 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
Перші кілька рядків: man head.
Додавання рядків: використовуйте >>оператор (?) У Bash:
echo 'This goes at the end of the file' >> file
head -n 100 yourfile.csv > shrunkfile.csv && echo 'morelines' >> shrunkfile.csv