Получение только последней строки непрерывного стандартного вывода

Если ваша система поддерживает файловую систему uion -, например aufs или overlayfs , исходный файл squashfs извлекать не нужно.

Например, overlayfs используется (параметр ядра для его включения ):Сначала вы можете смонтировать файл squashfs.file в /fm или куда-нибудь еще. Подготовьте доступную для записи файловую систему с двумя каталогами, скажем, /to и /temp . подготовьте другой доступный для записи каталог /fin для объединенных результатов. Смонтируйте их вместе как наложение на вашу систему---

mount -t overlay -o lowerdir=/fm,upperdir=/to,workdir=/temp overlay /fin

Теперь вы можете добавлять/изменять файлы в /fin . Когда все сделано, вы можете mksquashfs /fin в новый файл squashfs,

mksquashfs /fin newfile; umount /fin

, затем очистите/размонтируйте все другие используемые каталоги по своему усмотрению.

squashfs и некоторые unionfs обычно используются для live -cd .

0
19.07.2019, 20:36
2 ответа

Это можно сделать из оболочки, зациклив выходные строки и записав каждую строку в желаемый выходной файл, например:

sar -n DEV 1 |
grep wlp2s0  |
while read ln
do
  printf '%s\n' "$ln" > output.txt
done

Решение на основеperl-@OleTange может быть более эффективным с точки зрения создания процессов, но если ваша оболочка имеет встроенный -в printf, этот метод может быть почти таким же простым.

1
28.01.2020, 02:29
sar -n DEV 1 |
  perl -ne 'if(/wlp/) { open(O,">current"); print O; close O }'
1
28.01.2020, 02:29

Теги

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