Самый простой способ заменить пробелы (подчеркивания) в bash [закрыто]
недавно мне пришлось написать небольшой скрипт, который анализировал виртуальные машины в XenServer, и поскольку имена виртуальных машин в основном имеют пробелы, например, в Windows XP или Windows Server 2008, мне пришлось обрезать эти пробелы и заменить их подчеркиванием_. Я нашел простое решение для этого с помощью sed, который является отличным инструментом, когда речь заходит о манипуляциях со строками.
echo "This is just a test" | sed -e 's/ /_/g'
возвращает
This_is_just_a_test
2 ответа:
вы можете сделать это, используя только оболочку, не нужно
tr
илиsed
$ str="This is just a test" $ echo ${str// /_} This_is_just_a_test
это пограничное программирование, но посмотрите на использование tr:
$ echo "this is just a test" | tr -s ' ' | tr ' ' '_'
должны сделать это. Первый вызов сжимает пробелы вниз,второй заменяет подчеркивание. Вероятно, вам нужно добавить вкладки и другие пробелы, это только для пробелов.