TGViewer
BashTex | Linux BashTex | Linux @bash_tex · 2.51K subscribers
Post #156 994
Динамическая замена строк в переменных без внешних утилит

В Bash многие привыкли использовать sed, awk или tr для замены текста, но можно обойтись без них, используя встроенные механизмы обработки строк

1. Простая замена в строке. Стандартная конструкция:


text="Hello, world!"
echo "${text/world/Bash}"


Вывод: Hello, Bash!
Здесь world заменяется на Bash.

2. Замена всех вхождений. Если слово встречается несколько раз, можно заменить все его появления:


text="apple banana apple orange"
echo "${text//apple/grape}"


Вывод: grape banana grape orange

Обратите внимание на // — оно заменяет все вхождения.

3. Удаление подстроки. Чтобы удалить слово из строки, просто оставьте замену пустой:


text="error: file not found"
echo "${text/error: /}"


Вывод: file not found

4. Замена только в начале или конце строки.

Замена в начале строки:


text="error_log_123"
echo "${text/#error_/warn_}"


Вывод: warn_log_123

Замена в конце строки:


text="backup_20240101.tar"
echo "${text/%tar/gz}"


Вывод: backup_20240101.gz

5. Динамическая замена значений в переменных. Допустим, у нас есть путь, и мы хотим заменить часть его на другую:


path="/home/user/project/file.txt"
new_path="${path/user/admin}"
echo "$new_path"


Вывод: /home/admin/project/file.txt

6. Усложненный пример: замена динамических данных. Предположим, у нас есть строка с датой, и мы хотим заменить год на текущий:


text="Backup from 2023-05-01"
current_year=$(date +%Y)
echo "${text/2023/$current_year}"


Вывод (если 2025 год): Backup from 2025-05-01

BashTex 📱 #linux #utils
  • 👍 19
  • 🔥 2
More from @bash_tex
  1. Oct 13, 2026openat2(): как Linux защищает от выхода за пределы каталога Допустим, приложение должно чи…
  2. Oct 12, 2026xargs против while read: где быстрее и безопаснее Обе конструкции позволяют обработать спи…
  3. Oct 9, 2026BashTex 📱 #мем
  4. Oct 8, 2026Bridge FDB - как Linux bridge узнаёт, где находится MAC Linux bridge не знает заранее, за…
  5. Oct 7, 2026/dev/tcp - сетевое соединение средствами Bash В Bash есть малоизвестная возможность работа…
  6. Oct 6, 2026Ephemeral ports - почему заканчиваются исходящие TCP-порты Когда приложение устанавливает…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →