Как установить дополнение bash

Вот какой-то bash, который сам угадывает разделитель:

#!/bin/bash

delimiter="${1//[[:digit:]]/}"
if echo $delimiter | grep -q "^\(.\)\1\+$"
then
  delimiter="${delimiter:0:1}"
  if [[ -z $(echo $1 | grep "^\([0-9]\+"$delimiter"\([0-9]\+\)*\)\+$") ]]
  then
    echo "You seem to have empty fields between the delimiters."
    exit 1
  fi
  if [[ './\' == *$delimiter* ]]
  then
    n=$( echo $1 | sed "s/\\"$delimiter"/\\n/g" | sort -n | tr '\n' ' ' | sed -e "s/\\s/\\"$delimiter"/g")
  else
    n=$( echo $1 | sed "s/"$delimiter"/\\n/g" | sort -n | tr '\n' ' ' | sed -e "s/\\s/"$delimiter"/g")
  fi
  echo ${n%$delimiter}
  exit 0
else
  echo "The string does not consist of digits separated by one unique delimiter."
  exit 1
fi

Это может быть не очень эффективно и чисто, но это работает.

Используйте как bash my_script.sh "00/00/18/29838/2".

Возвращает ошибку, если один и тот же разделитель не используется последовательно или два или более разделителя следуют друг за другом.

Если используемый разделитель является специальным символом, он экранируется (, иначе sedвозвращает ошибку ).

0
27.11.2019, 23:49
1 ответ

Судя по README репозитория, вы можете использовать MacPorts для установки пакета завершения bash -. После установки macportsport install bash-completion

0
28.01.2020, 03:05

Теги

Похожие вопросы