Replace characters in a string using Bash
A common operation involving string literals is replacing individual characters or substrings within the string with other characters or substrings.
In this article, we will look at several ways to do string replacement using the BASH shell.
Method 1 – Using tr Command
tr is a very handy Bash command that can be used to perform different transformations on strings. It is particularly useful in string transformations (for example, changing the case of a string to upper or lower case), removing substring duplications, and searching and replacing substrings.
It is used to replace characters and substrings in a string.
syntax:
echo "$variableName" | tr [character(s)ToBeRemoved] [character(s)ToBeAdded]
Script example:
STR="ABCD"
echo "$STR" | tr A Z
Output:
ZBCD
The character ‘A’ in the string variable $STR
is replaced with the character ‘Z’. It is important to note that the above command also works to replace all instances of the character ‘A’.
Script example:
STR="ABACAD"
echo "$STR" | tr A Z
Output:
ZBZCZD
For more complex use cases, such as replacing a single character with multiple characters or replacing a substring with another substring, you can still use tr
the command, but it will be necessary to incorporate and use regular expressions (RegEx) to accomplish such tasks.
tr
Another useful command option is the squeeze or -s option, which replaces a range of characters or a substring with a single character.
Script example:
STR="ABBBCDDDDDE"
echo "$STR" | tr -s BD Z
Output:
AZCZE
It can be seen that multiple adjacent occurrences of the characters "B" and "D" are replaced by a single "Z".
Method 2 - Using Bash Parameter Expansion
The $ sign is usually preceded by a variable name and is used to assign a value to the variable or print its contents. However, we can also use it for parameter expansion.
We can use parameter expansion to replace the contents of a variable with a given substring in the following way.
syntax:
${varName/substring/replacement}
请注意
, for variable expansion, the use of curly braces is optional.
Script example:
STR="I LIKE FOOTBALL"
echo ${STR/FOOTBALL/CRICKET}
Output:
I LIKE CRICKET
请注意
, use a single forward slash after the variable name in the parameter expansion command to replace only the first occurrence of a substring. Use the following script to replace all occurrences of a substring within a string or double forward slashes.
Script example:
${varName//substring/replacement}
Method 3 – Using sed Command
sed
The sed command is similar to the tr command. Nonetheless, it is more powerful as it can be used to directly edit text files without opening them. The sed command in BASH stands for stream editor. It performs many functions on files such as searching, find and replace, and insert or delete.
sed
The command can be used for string replacement in the following ways.
Script example:
STR=AZC
echo "$STR" | sed -r 's/[Z]+/B/g'
Output:
ABC
This is similar to using the -rtr
option after the command. The -r option sed
after the command stands for replace, and the pattern match (RegEx) describes what to find and replace.
请注意
The syntax of the command differs slightly between versions of bash on different systems ,sed
which may cause unpredictable behavior.
For reprinting, please send an email to 1244347461@qq.com for approval. After obtaining the author's consent, kindly include the source as a link.
Related Articles
String comparison operators in Bash
Publish Date:2025/03/23 Views:98 Category:OPERATING SYSTEM
-
In this article, we will explain string comparison in Bash using if statement. The shell program that runs in Linux and provides a command line interface for users to execute different commands is called Bash shell. It is also used as the d
Convert a string to an integer in Bash
Publish Date:2025/03/23 Views:154 Category:OPERATING SYSTEM
-
This article will discuss string to integer conversion in Bash script. First, we will discuss the math operations on strings and then we will see how to convert a string to an integer. Mathematical operations on strings Let's start our disc
Get the length of a string in Bash
Publish Date:2025/03/23 Views:145 Category:OPERATING SYSTEM
-
In programming languages, the length or size of a data type plays an important role. It helps in list traversal and facilitates the extraction of useful information. The length is especially important when performing tasks that require trav
使用 Bash 替换字符串中的字符
Publish Date:2023/05/18 Views:159 Category:操作系统
-
在本文中,我们将研究使用 BASH shell 进行字符串替换的几种方法。涉及字符串文字的一种常见操作是用其他字符或子字符串替换该字符串中的单个字符或子字符串。
Bash 中的字符串比较运算符
Publish Date:2023/05/18 Views:218 Category:操作系统
-
在本文中,我们将使用 if 语句解释 Bash 中的字符串比较。运行在 Linux 中,提供命令行界面供用户执行不同命令的 shell 程序称为 Bash shell。
在 Bash 中将字符串转换为整数
Publish Date:2023/05/18 Views:167 Category:操作系统
-
本篇文章将讨论 Bash 脚本中的字符串到整数的转换。 首先,我们将讨论字符串的数学运算问题,然后我们将了解如何将字符串转换为整数。
在 Bash 中获取字符串的长度
Publish Date:2023/05/18 Views:299 Category:操作系统
-
字符串是不同字符的序列,其中可能包含空格。 在 Bash 中,字符串的长度是该字符串中字符的总数。
在 Bash 中将字符串拆分为变量
Publish Date:2023/05/18 Views:211 Category:操作系统
-
本篇文章将讨论在 Bash 中将字符串拆分为变量的不同方法。我们将从对字符串的简要介绍开始我们的讨论。 Bash 中的字符串 字符串是字符的组合/集合。 在 Bash 中,字符串是一种类似于整数或浮
Bash 从字符串中删除换行符
Publish Date:2023/05/18 Views:239 Category:操作系统
-
本篇文章介绍如何在 Bash 中从字符串中删除换行符。在 Bash 中创建一个带有换行符的字符串 有时,要求字符串中不要有换行符。