bash: Подсказка визуально разбивается [duplicate]

number_of_elements = $( sed 's/[^,]//g' elements.txt | wc -c )

Попытался бы запустить команду number_of_elements с = и результатом split + glob, примененным к выходу команды wc в качестве аргументов. В оболочках типа Bourne скалярные переменные присваиваются с помощью var = value без символа пробела вокруг = ( var также должно быть буквальным и быть допустимое имя переменной).

Также обратите внимание, что команда sed удалит все, кроме , , новой строки и байтов, не входящих в допустимые символы в elements.txt .

Если вы хотите подсчитать только символы , , вы должны сделать:

count=$(tr -cd , < elements.txt | wc -c)

Для , и новой строки:

count=$(tr -cd ',\n' < elements.txt | wc -c)

(но будьте осторожны с некоторыми wc , $ count может иметь некоторые начальные или конечные пробелы).

Чтобы добавить некоторое число:

count=$(($(tr -cd , < elements.txt | wc -c) + 1))

Содержимое $ ((...)) обрабатывается так, как если бы внутри «...» : расширение параметра, арифметическое расширение и подстановка команд по-прежнему выполняется.Чтобы удалить лишние пробелы, упомянутые выше, вы можете сделать:

count=$(($(... | wc -c)))

вместо:

count=$(... | wc -c)
3
17.04.2019, 01:05
0 ответов

Теги

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