Как я могу получить часть текстового файла по терминалу

Кажется, что Вы не установили libxcb-xrm, который создается из исходного пакета xcb-util-xrm. В Ubuntu 16.4 необходимо установить xcb-util-xrm от источник .

cd /path/where/you/want/the/repository

# clone the repository
git clone https://www.github.com/Airblader/i3 i3-gaps
cd i3-gaps

# compile & install
autoreconf --force --install
rm -rf build/
mkdir -p build && cd build/

../configure --prefix=/usr --sysconfdir=/etc
make
sudo make install

7
задан 16.04.2020, 03:58

2 ответа

Вы можете использовать sed:

sed -n 607366,700000p server.log > outputFile.txt

Если вы хотите использовать head и tail, это правильный путь:

head -n 700000 server.log | tail -n $(echo 700000-607366+1 | bc) > outputFile.txt

или, короче :

head -n 700000 server.log | tail -n 92635 > outputFile.txt
0
ответ дан 16.04.2020, 03:59
  • 1
    @EmanuellaRamosCavalcante проверьте снова; I' m уверенный, что это запускается оттуда:/ – MedicineMan 16.04.2020, 03:59
  • 2
    @RaduRДѓdeanu, возможно, можно помочь с подобным вопросом здесь: unix.stackexchange.com/questions/94464/… – Tim 16.04.2020, 03:59
  • 3
    Спасибо за Ваш ответ, но вывод doesn' t запустил в строке 607 366:/ – MedicineMan 16.04.2020, 04:00

Оптимизации по Раду:

sed '607366,$!d;700000q' server.log > outputFile.txt

Таким образом, мы прекращаем читать (q) server.log после того, как находим 700000 -ную строку.

head -n 700000 server.log | tail -n "$((700000-607366+1))"

Нет необходимости вызывать bc здесь, мы можем использовать стандартное арифметическое расширение.

Но сделать это наоборот будет гораздо эффективнее:

tail -n +607366 | head -n "$((700000-607366+1))"

, поскольку это не подразумевает сохранение в памяти большого количества строк.

0
ответ дан 16.04.2020, 03:59

Теги

Похожие вопросы