Согласно плакату, следующая команда работает
apt-get -o Debug::pkgProblemResolver=true install click click-dev gir1.2-click-0.4 libclick-0.4-0
и дает результат
Reading package lists... Done
Building dependency tree
Reading state information... Done
Starting pkgProblemResolver with broken count: 0
Starting 2 pkgProblemResolver with broken count: 0
Done
The following extra packages will be installed:
python3-click-package
Suggested packages:
ubuntu-app-launch-tools upstart-app-launch-tools
Recommended packages:
debootstrap
The following packages will be REMOVED:
python3-click
The following NEW packages will be installed:
python3-click-package
The following packages will be upgraded:
click click-dev gir1.2-click-0.4 libclick-0.4-0
4 upgraded, 1 newly installed, 1 to remove and 0 not upgraded.
Need to get 146 kB of archives.
After this operation, 1,024 B of additional disk space will be used.
Do you want to continue? [Y/n]
Таким образом, никаких проблем при запуске явного apt-get install
.
Я попросил автора запустить его без флага отладки, чтобы посмотреть, дает ли он такие же результаты, но, по-видимому, он уже запускал отладочную версию.
Используя тот же подход, что и вы, используя временный файл, но делая его немного короче:
showqueue >/tmp/q.out; head -n 20 /tmp/q.out; echo '...'; tail -n 20 /tmp/q.out
Это не будет страдать от тех же проблем, которые обсуждались в другом ответе , но может отображать одни и те же строки дважды, если вывод был короче 40 строк.
решение awk для произвольного количества строк, показанных с начала и с конца (измените n=3
, чтобы установить количество):
$ seq 99999 | awk -v n=3 'NR <= n; NR > n { a[NR] = $0; delete a[NR-n]; }
END { print "..."; for (i = NR-n+1; i <= NR; i++) if (i in a) print a[i]; }'
1
2
3
...
99997
99998
99999
Как написано, начальная и конечная части не будут не перекрываться, даже если ввод короче 2*n
строк.
В некоторых реализациях awk также работает использование for (x in a) print a[x];
в части END
. Но в целом не гарантируется возврат записей массива в правильном порядке и, например,. мямлить.
Вы можете использовать простой скрипт awk. Добавлен круговой буфер, где n=3 для последних 3 строк
awk 'NR<=n {print $0} { A[NR%n]=$0 } END { for (i=1; i<=n; ++i) if (NR+i>2*n)print A[(NR+i)%n] }' n=3 < <( seq 10 )
После обновления это уже не просто,
Вы хотите сделать что-то вроде следующего? Показывает вывод как из головы, так и из хвоста.
$ showqueue | (head && tail)