Расширение параметра Bash для удаления вкладок

У меня есть такая строка в скрипте:

TATVAR=$(echo $PARAMVAR|sed -e 's/^[ \t]*//') 

Я хотел бы уменьшить это, чтобы не выполнять дополнительную программу (sed), shellcheck предложил мне, что я должен использовать:

 ${variable//search/replace} 

Я пробовал много регулярных выражений, но кажется, что это не работает. Кто-нибудь знает, как это сделать?

2 Solutions collect form web for “Расширение параметра Bash для удаления вкладок”

Вы можете использовать "${PARAMVAR//$'\t'/}" , но обратите внимание, что это функция bash, поэтому другие оболочки могут ее не поддерживать. Это означает, что вы начинаете свой скрипт с #!/bin/bash , а не #!/bin/shне запускаете его с помощью sh scriptname ).

 $ PARAMVAR=$'space: tab:\tlinefeed:\nend' $ echo "$PARAMVAR" space: tab: linefeed: end $ echo "${PARAMVAR//$'\t'/}" space: tab:linefeed: end 

Для сравнения, использование [[:blank:]] также избавится от пробелов:

 $ echo "${PARAMVAR//[[:blank:]]/}" space:tab:linefeed: end 

И вы всегда должны обертывать ссылки переменных в двойных кавычках, иначе все пробелы обрабатываются как разрывы слов (и echo затем превращает их в пробелы):

 $ echo $PARAMVAR space: tab: linefeed: end 

Я только что справился с этим:

 TATVAR="${PARAMVAR//[[:blank:]]/}" 

Я был бы рад, если кто-то сможет подтвердить, что это правильно.

  • Баш-скрипт, вычисляющий среднее значение зарплат
  • Создать узел, который содержит обновленное значение по времени
  • выход в json-форме
  • Поиск элементов в массиве в bash
  • Bash цитирует расширение
  • Значение `10 # N`
  • Есть ли способ загрузить предположительно исходный источник bash-0.99?
  • Преобразование списка стран в список континентов в Bash
  • Замена команды с использованием ``
  • Сценарий оболочки не может создать файл awk
  • Почему `bash <command>` не запускается?
  • «ожидать» поведение в сценарии bash
  • Interesting Posts

    Как узнать, что именно написано или какой процесс поддерживает мой дисковый накопитель?

    Перезагрузка ~ / .profile для рабочего стола

    Sed для печати только первого соответствия шаблону линии

    Переименуйте файлы со случайными символами из sha1sum. Будут ли имена уникальными?

    загружать только первые несколько байтов исходной страницы

    В команде «top» Linux есть ли способ отслеживать значения?

    Определите, установлен ли (NTFS) диск или нет. Если нет, то установите его

    У Alsamixer есть дополнительные вещи, которые не исчезнут

    `tar` с` find` с удалением исходного расширения файла

    Предотвращение повреждения файловой системы в встроенной системе Linux

    bash исчерпает память

    получение IP-адреса DHCP с маршрутизатора на Docker

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

    Правильный способ запуска VirtualBox с установленными совместно установленными папками

    Сокращение команды сборки

    Linux и Unix - лучшая ОС в мире.