Howto Bash

Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
howto:howto_bash [16.06.2020 07:31]
s.troshin
howto:howto_bash [16.06.2020 07:34] (текущий)
s.troshin
Строка 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~~ Обязательны к прочтению всем /*Не удаляйте эту строку и ниже!*/