Так как, по-видимому, мы отвечаем на этот вопрос теперь.
$ ls -1
afile1
afile2
afile3
filelist.txt
$ cat afile{1..3}
blah
blah
blah
$ cnt=0; for i in $(< filelist.txt);do \
let cnt="cnt+$(wc -c $i | cut -d' ' -f1)";done; echo $cnt
15
В его расширенной форме:
$ cnt=0;
$ for i in $(< filelist.txt);do
let cnt="cnt+$(wc -c $i | cut -d' ' -f1)"
done
$ echo $cnt
Один из наших постоянных клиентов упомянул, что Ваш преподаватель, возможно, искал этот метод, о котором до сих пор я не знал. В более новых версиях wc
команда там является a --files0-from=
переключатель, который может взять список файлов и вычислить количество символов и соответствующего общего количества.
Затруднение подхода:
$ tr -s '\n' '\000' < filelist.txt | wc -c --files0-from=-
$ tr -s '\n' '\000' < filelist.txt | wc -c --files0-from=-
5 afile1
5 afile2
5 afile3
15 total
Это может, конечно, быть очищено так, чтобы результат был сохранен в значении. Что-то вроде этого:
$ tr -s '\n' '\000' < filelist.txt | \
wc -c --files0-from=- | awk '/total/ {print $1}'
15
И наконец можно сохранить результаты в переменной как так:
$ cnt=$(tr -s '\n' '\000' < filelist.txt | \
wc -c --files0-from=- | awk '/total/ {print $1}')
Вариант 1:
Поскольку вы, кажется, имеете полуконфигурированный mongodb-org-server
и распакованный, но (не сконфигурированный) mongodb-org
, пожалуйста, попробуйте следующую команду:
dpkg --configure mongodb-org-server mongodb-org
Если также не удаётся решить проблемы с зависимостями, попробуйте следующее:
dpkg --configure --force-depends mongodb-org-server mongodb-org
Вариант 2:
Так как настройка пакетов в вашем случае, похоже, не проходит нормально, я бы посоветовал в следующий раз попробовать очистить систему предыдущей установки, а затем выполнить свежую инсталляцию. Однако, это довольно грубый способ, и я предлагаю вам сначала прочитать его и иметь в виду, что я на самом деле не тестировал его.
Сначала получите список файлов, установленных пакетами mongodb-org:
dpkg-query -L mongodb-org mongodb-org-server mongodb-org-mongos mongodb-org-shell mongodb-org-tools | grep "^\/[^\.]" > mongo.files
Затем проверьте содержимое mongo.files
(чтобы убедиться, что он содержит только пути, которые можно удалить), сделав:
less mongo.files
Затем удалите эти файлы из системы, выпустив:
rm `cat mongo.files`
Затем сообщите менеджеру пакетов, что эти пакеты в настоящее время не установлены в системе, отредактировав вручную /var/lib/dpkg/status
. Перед тем, как что-либо сделать с этим файлом, сделайте резервную копию на случай, если что-то пойдет не так (помните, что мы делаем операцию с внутренними данными менеджера пакетов...). Файл отформатирован в виде последовательных строк текста с разделами, разделенными пустой строкой. Найдите в файле все секции, начинающиеся с Package: mongodb-org
и удалите их (удалите все строки из строки, начиная с 'Package' и заканчивая пустой строкой). После этого сохраните файл и запустите apt-get update
, а затем apt-get install mongodb-org
.
Я надеюсь, что это ничего не сломает и в конце концов вы получите работоспособную копию MongoDB.