Использовать sshfs
sshfs username@server:/directory/in/server/ /local/directory/to/mount
Локальный каталог для монтирования должен быть пустым
Пример
sshfs corthez@mycloudserver.com:/home/corthez/codes/ /home/corthez/sshfs/codes
ИМХО это было бы проще в awk или perl, по изложенным здесь причинам:grep с логическими операторами (, в частности, что в grep )нет естественного AND
оператора. Например
awk 'gsub(/[a-z]/,"&") == 5 && gsub(/[0-9]/,"&") == 5' file
или
perl -ne 'print if tr/[a-z]// == 5 && tr/[0-9]// == 5' file
напечатает строки, содержащие ровно 5 символов каждого из наборов символов.
Если вы настаиваете на grep, может сработать что-то вроде этого:
grep -xE '([^a-z]*[a-z][^a-z]*){5}' file | grep -xE '([^0-9]*[0-9][^0-9]*){5}'
Не используя правые инструменты , см. , но хотя бы как альтернативу:
while read i; do
foo=$(echo -n $i | sed 's/[a-z]//g' | wc -c) && bar=$(echo -n $i | sed 's/[0-9]//g' | wc -c)
[[ $foo -eq 5 && $bar -eq 5 ]] && echo "$i has five digits and five alphas"
done < file
Удалите буквы, оставшиеся цифры и сосчитайте их. Чтобы быть тщательным, удалите цифры, оставшиеся - альфа, посчитайте их. Сохраните каждый результат в переменной:
foo=$(echo -n $i | sed 's/[a-z]//g' | wc -c) && bar=$(echo -n $i | sed 's/[0-9]//g' | wc -c)
Если переменные имеют длину 5 символов, то строка состоит из пяти цифр и пяти букв:
[[ $foo -eq 5 && $bar -eq 5 ]] && echo "$i has five digits and five alphas"
Выход:
azert12345 has five digits and five alphas
a1z2e3r4t5 has five digits and five alphas
Эта логика ошибочна?