Удалить определенное слово в переменной

В сценарии bash , как я могу удалить слово из строки, слово будет храниться в переменной.

 FOO="CATS DOGS FISH MICE" WORDTOREMOVE="MICE" 

2 Solutions collect form web for “Удалить определенное слово в переменной”

Пытаться:

 $ printf '%s\n' "${FOO//$WORDTOREMOVE/}" CATS DOGS FISH 

Это также работает в ksh93 , mksh , zsh .


POSIXLY:

 FOO="CATS DOGS FISH MICE" WORDTOREMOVE="MICE" remove_word() ( set -f IFS=' ' s=$1 w=$2 set -- $1 for arg do shift [ "$arg" = "$w" ] && continue set -- "$@" "$arg" done printf '%s\n' "$*" ) remove_word "$FOO" "$WORDTOREMOVE" 

Предполагается, что ваши слова ограничены пространством и имеют побочный эффект, который удаляет пробелы до и после "$WORDTOREMOVE" .

Использование замены подстроки bash:

FOO = $ {FOO // $ WORDTOREMOVE /}

// заменяет все вхождения подстроки ($ WORDTOREMOVE) содержимым между / и}. В этом случае ничего.

Информацию об этом и других способах работы со строками в bash см. В разделе 10.1. Манипулирование строками расширенного руководства по созданию скриптов .

  • Объявление переменной параллельным sh -c ...
  • команда `read` не работает в Makefile
  • Область переменных в while-read-loop на Solaris
  • Передача переменной из одного сценария в другой
  • Как изменить переменные
  • перечислить файлы и сохранить их в переменных
  • Как передать переменную в sftp?
  • Как установить переменную среды оболочки из файла autotools .am?
  • Использование find с двумя наборами переменных
  • Bash: Объем переменных в цикле for с использованием тройника
  • Как использовать глобальные переменные массивы в псевдонимах или функциях
  • Interesting Posts

    Как работает встроенная структура управления / перенаправления Bash

    Выйти в файл и прочитать его

    xrandr, xorg test screen error – по умолчанию используется только допустимый режим

    Хвост журнальных файлов на двух разных хостах

    Как проверить контрольные суммы в режиме on-line в brtfs?

    Ping через определенный порт Ethernet

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

    Как проверить, какой предел был превышен? (Процесс прекращен из-за ulimit.)

    Параллельный запуск функций

    Kali Linux не загружается с USB-накопителя

    Может ли разреженный файл перейти к размеру плунжера?

    FreeBSD зашифрованное зеркало zfs – замените неисправный диск, включая зашифрованный своп

    Команда Optirun перестает работать в системе Optimus через некоторое время

    Как экспортировать LD_LIBRARY_PATH всем пользователям и системным службам

    Решение целочисленного выражения ожидается

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