Gistrec

ОССиС лабораторная 3 задание 5

Mar 25th, 2018
256
0
Never
1
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 2.10 KB | None | 0 0
  1. ##############################################################
  2. # Разработать сценарий для сортировки файла данных           #
  3. #           по заданному пользователем полю записи.          #
  4. #                                                            #
  5. # Поддерживаемые флаги: -n сортировка по имени               #
  6. #                       -d сортировка по дню                 #
  7. #                       -m сортировка по месяцу              #
  8. #                       -y сортировка по году                #
  9. #                       -s сортировка по городу              #
  10. #                       -m сортировка по оценки              #
  11. #                       -f <fileName> задание входного файла #
  12. ##############################################################
  13.  
  14. # Команда sort
  15. # Начальная позиция задается как +m.n, что означает (n+1)-ый символ в (m+1)-ом поле
  16. command='sort'
  17. fileName='';
  18.  
  19. while true; do
  20.   case "$1" in
  21.     # Сортируем по имени.
  22.     -n | -name  )   command+=" +0.0b -1.0b";
  23.                     shift ;;
  24.  
  25.     # Сортируем по времени
  26.     -d | -day   )   command+=" +1b -2b";   shift ;;
  27.     -m | -month )   command+=" +1.3b -2b"; shift ;;
  28.     -y | -year  )   command+=" +1.6b -2b"; shift ;;
  29.  
  30.  
  31.     -s | -sity )    command+=" +2b -3b";   shift ;;
  32.  
  33.     -m | -mark )    command+=" +3b -4b";   shift;;
  34.  
  35.     -f | -file ) fileName="$2"; shift; shift ;;
  36.     * ) break ;;
  37.   esac
  38. done
  39.  
  40. # Проверка на то, что файл задан
  41. if [ "$fileName" == "" ]; then
  42.     echo "Укажите название файла: -f <fileName>";
  43.     exit
  44. fi
  45.  
  46. # Проверка на существование файла
  47. if [ ! -f "$fileName" ]; then
  48.     echo "Файл $fileName не существует";
  49.     exit
  50. fi
  51.  
  52.  
  53. # Выполняем команду
  54. # echo "$command $fileName"
  55. eval "$command $fileName"
Advertisement
Comments
  • User was banned
Add Comment
Please, Sign In to add comment