Используйте одинарные кавычки (или экранируйте \
) вокруг оператора замены, иначе оболочка обработает $ {1}
как переменная.
Итак, вы можете сделать:
rename -n 's/([0-9])/0${1}/' *.mp4
Или
rename -n "s/([0-9])/0\${1}/" *.mp4
Я мог бы подойти к этому так:
low=$1
high=$2
if [ "$low" -lt "$high" ]
then
awk -v low="$low"-v high="$high" '$1 >= low && $1 <= high { print substr($0, index($0, " ")+1) }' /home/misc/gwrika/cse251/hw3/short-rockyou.txt
else
echo "please enter the first argument as the smaller number and the second argument as the larger number"
fi
Я переименовал ваши переменные, но суть в том, что это простой awk-скрипт, в котором вы передаете нижний и верхний пределы, а затем спрашиваете, находится ли столбец 1 в этом диапазоне; если так,он печатает второе поле (, находя позицию первого пробела и пропуская его ). Если, как в вашем образце ввода 30 yahoo123
, у вас есть несколько пробелов, отделяющих частоту от пароля, но все пароли начинаются с определенного столбца, используйте:
awk... print substr($0, 7)...
, чтобы начать печать с соответствующего столбца.