Howto Bash
Различия
Здесь показаны различия между двумя версиями данной страницы.
Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
howto:howto_bash [06.03.2020 06:43] s.troshin [Удалить аргумент из списка] |
howto:howto_bash [16.06.2020 07:34] (текущий) s.troshin |
||
---|---|---|---|
Строка 66: | Строка 66: | ||
===== Удалить аргумент из списка ===== | ===== Удалить аргумент из списка ===== | ||
- | Сложные изменения <code bash>$@</code> | + | Сложные изменения $@ |
<code> | <code> | ||
Строка 77: | Строка 77: | ||
</code> | </code> | ||
+ | |||
+ | ===== Убрать/заменить не валидные символы ===== | ||
+ | |||
+ | Бывает нужно из строки сделать имя файл или переменной, и при этом, чтобы имя было из определённых символов: | ||
+ | |||
+ | <code bash> | ||
+ | # замена всех не букв-цифр на _ | ||
+ | # есть и другие классы, также можно указать конкретные символы и диапазоны | ||
+ | ts@ts:~$ echo "$(tr -c '[:alnum:]' '_' <<<"var some/value+other?thing")" | ||
+ | var_some_value_other_thing_ | ||
+ | |||
+ | # удаление всех не букв-цифр и _ | ||
+ | ts@ts:~$ echo "$(tr -cd '[:alnum:]_' <<< "var_some??_value+++_other_thing")" | ||
+ | var_some_value_other_thing | ||
+ | |||
+ | # Очень полезно иногда заменить несколько пробелов одним, чтобы использовать потом cut | ||
+ | ts@ts:~$ tr -s '[:blank:]' <<<"field1 field2 field3" | cut -d " " -f 1,3 | ||
+ | field1 field3 | ||
+ | </code> | ||
+ | |||
+ | * -c = --complement, дополнение множества символов из первого параметра (все остальные символы, кроме перечисленных) | ||
+ | * -d = --delete | ||
+ | * -s = --squeeze-repeats - убрать повторы указанных символов | ||
~~OWNERAPPROVE~~ Обязательны к прочтению всем /*Не удаляйте эту строку и ниже!*/ | ~~OWNERAPPROVE~~ Обязательны к прочтению всем /*Не удаляйте эту строку и ниже!*/ |