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

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

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

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

 ${variable//search/replace} 

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

  • Сравнение двух файлов в скрипте
  • Какое время выдает «раз»?
  • Могу ли я заставить bash игнорировать ведущий `:`, когда он присутствует?
  • возможно ли заблокировать пользователя в дереве каталогов данных в bash?
  • bash: файл mv с апострофом в имени файла
  • Bash 4, расширение и ввод в строчные буквы
  • Как заставить слово Bash ссылаться на псевдоним, функцию, файл и т. Д.?
  • Проблема с сценарием UNIX
  • 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:]]/}" 

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

    Interesting Posts

    Шифрование с помощью Xubuntu с ключом и паролем

    Странный выход df после ddrescue clone

    Высокая загрузка процессора с помощью zip-команды

    Как работает обнаружение sudo / root-ness

    Разница между медленными системными вызовами и быстрыми системными вызовами

    Как настроить режим vi в режиме ZSH для сохранения состояния между командами?

    Windows 10 и Archlinux Dualboot с зашифрованного диска

    Нет повышенных разрешений при использовании графических приложений на i3 wm

    Нет микрофонного входа – VIZIO CT15-A5 и 12.04 LTS (64)

    которые и не работают, чтобы найти путь ruby.exe

    Как распечатать CSV / таблицу из результатов SQuirreL?

    Как я могу туннелировать трафик для NAT-узла на другой сервер?

    Xvfb -screen -> (EE) Невозможно установить слуховые сокеты

    Копирование содержимого буфера обмена в файл автоматически и непрерывно?

    Как я могу получить wifi-меню для отображения звездочек вместо паролей с открытым текстом?

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