ssh_host_key
закрытый ключ, если Вы используете протокол SSHv1 и ssh_host_key.pub
открытый ключ соответствия. Это должен быть ключ RSA.
При использовании SSHv2, Вы выбрали между несколькими алгоритмами подписания как DSA, RSA и ECDSA и затем ssh_host_ecdsa_key
и и т.д. используются.
Используйте оператор сопоставления файлов в цикле для
. для f в * _*.png
будет соответствовать всем указанным именам файлов png и назначит каждое имя переменной f. Затем в цикле используйте операцию $ {f% _ *}
bash для извлечения только номера файла.
FOLDER="$HOME/Images/Shutter"
cd "$FOLDER"
for f in *_*.png
do
num=${f%_*}
shutter -f -e -n -o "${FOLDER}/${num}_$(date '+%d-%m-%Y.png')"
done
-121--186507- Вы помещаете -exec
между кавычками, которые были около конца времени, это не то, что вы хотите. Вы должны сделать:
найти/mnt -type f -name «* .jpg» -newermt «2014-12-14 01:00:00»! -newermt «2014-12-14 02:00:00» -exec cp -pf {}/home/pi/box/pictures/;
(все в одной строке)
-121--175231-Это должно получить все слова из всех файлов, отсортировать их и получить уникальные слова, чем итерация через эти слова и подсчитать, сколько файлов он имеет в.
# find all words from all files within the directory
grep -o -h -E '\w+' directory/*|sort -u | \
while read word;
do
# iterate through each word and find how many files it occurs
c=`grep -l "$word" directory/*|wc -l`
echo "$c $word";
done
Можете ли вы проверить фактический файл конфигурации часового пояса? ~ 20 секунд разница предполагает, что есть несоответствие между часовыми поясами, и один настроен с високосными секундами, другой без високосных секунд:
> TZ=right/Europe/London date; TZ=Europe/London date
Sun Dec 20 22:34:45 GMT 2015
Sun Dec 20 22:35:10 GMT 2015
Возможно, проще проверить, если TZ = UTC дата
печатает одно и то же время на всех машинах, чтобы исключить различия в
Это должно точно учитывать 26 секунд (1 дополнительная разница секунд может быть объяснена, если проверена прямо на второй границе). Вы уверены, что оба вышеперечисленных клиента уже отлично синхронизированы?
Некоторые GPS-палочки печально известны тем, что забывают о различиях в секундах скачка, но если все ваши клиенты используют один и тот же NTP-сервер, это не может иметь эффекта - только если вы используете (плохое) локальное GPS-устройство в качестве источника времени NTP.
-121--132993- По умолчанию пакет mselog
устанавливает демон, который переводит MCE в удобочитаемую для пользователя форму и записывает их в системные журналы. Затем их можно просмотреть в /var/log/syslog
или с помощью journalctl
. Демон запускается из сценария init, для него нет необходимости добавлять системный блок.
Маловероятно, что проблемы с веб-камерой, которые вы видите, вызовут MCE, поэтому я сомневаюсь, что это поможет вам. Устройство, указанное как вход для mcelog
, не является устройством ввода, это специальное устройство, используемое для связи между ядром и любым другим устройством, заинтересованным в MCE ( mcelog
в данном случае).
Вот как обработать каждый файл в каталоге по отдельности:
for f in yourdirectory/*; do cat "$f" |
Вот как я отфильтровываю все, кроме слов, из текстовых данных:
sed 's/\.$//;s/\.\([^0-9]\)/\1/g;s/[][(),;:?!]//g' | tr [A-Z] [a-z] |
Но ваш метод может работать точно так же. (Я хотел убедиться, что не удалить дефисы из переносных слов или апострофы из сокращений.)
Либо путь, продолжить следующим образом:
tr -s ' ' '\012' | sort -u ; done |
Это делает один-на-файл список слов, так что теперь просто:
sort | uniq -c
Если вы хотите, чтобы список от most- до наименее частых, просто прихватить | sort -nr
.
Также может потребоваться добавить дополнительные знаки препинания, например, {}
в список в конце sed
выше, в зависимости от входных данных.
Я только что наткнулся на исходный ответ здесь @Mehmet, когда искал что-то несвязанное, и я вижу, что, хотя он работает, он ужасно неэффективен, требуя повторного чтения каждого файла для каждого уникального слова в все файлы! Второй ответ @Jeff довольно запутан, несмотря на объяснение, и, что хуже всего, он страдает от файла cat |
sin!
Достаточно одного прохода для всех данных, и это можно сформулировать, эффективно комбинируя предыдущие ответы:
find . -maxdepth 1 -type f -print |
while read file; do
egrep -h -o "[[:alnum:]][[:alnum:]_-]*" "$file" |
tr '[A-Z]' '[a-z]' |
sed "s|^|$file\||"
done |
sort -t '|' -k 2 |
uniq |
awk -F '|' '{
if (lw != $2) {
print fc " " lw;
fc = 0;
}
lw = $2;
fc++;
}'
Обратите внимание, что выбор разделителя полей важен, если ваши имена файлов включают пути и / или если они включают пробелы. Я выбрал символ |
, поскольку он никогда не должен быть частью слова, напечатанного egrep
, и вряд ли когда-либо появится в имени файла или каталога.
Я бы использовал здесь perl:
perl -T -lne '
for (/\w+/g) {$count{lc $_}->{$ARGV}=undef}
END {print "$_: " . keys %{$count{$_}} for keys %count}' ./*
Создает хэш хеша $ count {word}
- это ссылка на хеш, ключи которого являются именами файлов, которые word
находится в (и значения, которые нам все равно, здесь установлены на undef
).
В конце концов, мы просто подсчитываем количество элементов (то есть количество файлов) для каждого из этих хэшей (то есть для каждого из найденных слов).