Я бы использовал больше массивов. Этот ответ основан на bash версии 4 для ассоциативных массивов.
IFS=' -' read -ra words <<<"$IN"
declare -A items
for i in "${words[@]}"; do
[[ $i == "ItemName" ]] && continue
items["${i:0:1}"]=1
done
for key in "${!items[@]}"; do
echo "item $key is ${items[$key]}"
done
item a is 1
item b is 1
Если вам нужно установить некоторые значения по умолчанию для массива items:
declare -A items=([a]=0 [b]=0 [c]=0)
Тогда вы увидите
item a is 1
item b is 1
item c is 0
Чтобы vi запускался с определенной строки в файле, добавьте +line_num
к команде, которую вы используете для запуска vi. Замените line_num
на номер строки, например:
vi +14 file.py
Вы также можете использовать командную строку ex для перехода к строке. (Информацию о режиме ex см. в разделе Использование текстового редактора vi. )Например, если вы хотите перейти к строке 14, вы можете нажать Esc
, а затем ввести:
:14
Существует также команда vi. Движение прыжка G принимает необязательный префикс count , который является номером строки для перехода. Отсюда 14G