#!/bin/bash
string="This is a string with spaces"
new_string=$(echo "$string" | tr ' ' '-')
echo "$new_string"
В этой команде мы сохраняем исходную строку в переменной string. Затем мы используем команду echo для передачи строки ввода в tr. Утилита tr заменяет все пробелы ' ' на дефисы -. Результат замены сохраняется в переменной new_string. В конце мы выводим значение переменной new_string с заменой пробелов на дефисы.
Результат:
This-is-a-string-with-spaces
Флаг ' ' в команде tr указывает символ, который нужно заменить (пробел), а - указывает на символ, который будет использован в качестве замены (дефис). Если вы хотите заменить другие символы, просто измените их в соответствии с вашими потребностями.
Если вы хотите заменить пробелы на дефисы в файле, вы можете использовать команду tr с перенаправлением ввода и вывода:
tr ' ' '-' < file.txt > new_file.txt
В этом случае команда tr считывает контент из file.txt, заменяет пробелы на дефисы и записывает результат в new_file.txt.
Оригинальный файл file.txt остается без изменений.