имя файла без пробелов из двух командных строк

Я не знаю о Arch и Debian, но часто те графический интерфейсы пользователя сделаны с dialog(1), который берет набор параметров командной строки и затем представляет диалоговое окно с ncurses. Для примеров ядро Linux menuconfig похоже на это:

Screenshot of menuconfig

Пример dialog использование:

$ dialog --title "Hello" --infobox "Hello there Unix and Linux Stack Exchange" 20 100

Который приводит к:

Screenshot of dialog(1)

3
25.08.2011, 02:06
2 ответа

Можно использовать удар "Замена шаблона" (поиск той строки в странице справочника для деталей).

filename=${pid// /}.${vid// /}.tar.gz

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

8
27.01.2020, 21:10

Можно использовать sed:

pid=$(sudo dmidecode -s system-product-name | sed 's/  *//g')
2
27.01.2020, 21:10
  • 1
    Почему два пробелов в sed шаблоне? Это - posix вещь? –  Peter.O 24.08.2011, 11:01
  • 2
    @fred: ' *' (одно пространство), средства также обнуляют пробелы, ' *' (два пробелов), вместо этого эквивалентно ' \+' (одно пространство) и соответствие, по крайней мере, пространство (как @Caleb указанный в недавнем комментарии другому ответу). * метасимволом является POSIX основной regex, \+ не принят от всех sed реализации. –  enzotib 24.08.2011, 11:05
  • 3
    Кроме того, tr -d ' ' –  glenn jackman 24.08.2011, 16:05

Теги

Похожие вопросы