Самый простой способ заменить пробелы (подчеркивания) в bash [закрыто]


недавно мне пришлось написать небольшой скрипт, который анализировал виртуальные машины в XenServer, и поскольку имена виртуальных машин в основном имеют пробелы, например, в Windows XP или Windows Server 2008, мне пришлось обрезать эти пробелы и заменить их подчеркиванием_. Я нашел простое решение для этого с помощью sed, который является отличным инструментом, когда речь заходит о манипуляциях со строками.

echo "This is just a test" | sed -e 's/ /_/g'

возвращает

This_is_just_a_test
2 65

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 ' ' '_'

должны сделать это. Первый вызов сжимает пробелы вниз,второй заменяет подчеркивание. Вероятно, вам нужно добавить вкладки и другие пробелы, это только для пробелов.