Это должно работать, переключая комментарии в определенных строках, оставляя все пробелы нетронутыми.:
$ cat file
A
# B
C
$ sed -Ei '2b1;3b1;b;:1;s/^([[:blank:]]*)#/\1/;t;s/^([[:blank:]]*[^#[:blank:]])/#\1' file
# Run the same cat again
$ !cat
A
B
# C
# Run the same sed again
$ !sed
# Run the same cat again
$ !cat
A
# B
C
Добавьте
для каждой строки
, которую необходимо переключить.
Попробуйте сначала без -i
или используйте -i.bak
.
(sed
разветвление через)
Вы можете просмотреть последние N строк с интервалом M секунд, используя watch
. Предполагая, что N=20 и M=3,
watch -n3 tail -n20 logfile.txt
Очевидно, что вы потеряете большие куски вывода, поскольку интервал обновления превышает интервал записи, но, насколько я понимаю, это то, что вам нужно.
Bash >= 4 имеет специальную встроенную -функциюmapfile
:
tail -f logfile.txt | while mapfile -t -n 12 lines && ((${#lines[@]})); do
clear
printf '%s\n' "${lines[@]}"
sleep 0.1 # Might be necessary or you won't see anything at all except the last batch of lines
done
Взято из:Чтение n строк за раз с помощью Bash .
tail -f logfile.txt | less
И вы можете использовать интерфейс, выделенный Гленном Джекманом, для перемещения:
Мне нравится использовать less
для просмотра журналов. Некоторые полезные команды less:
G
)tail -f
):нажмите Ctrl+C , чтобы остановить слежку.