Replacing 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 in 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
Splitting a string into variables in Bash
Publish Date:2025/03/23 Views:58 Category:OPERATING SYSTEM
-
This article will discuss different ways to split a string into variables in Bash. We will start our discussion with a brief introduction to strings. Later, we will discuss various ways to split a string using Bash examples. Strings in Bash
Bash remove newline from string
Publish Date:2025/03/23 Views:184 Category:OPERATING SYSTEM
-
This article explains how to remove newlines from a string in Bash. Creating a string with newlines in Bash Sometimes, it is required that a string does not have newline characters in it. Bash provides several methods to remove newline char
Remove the first character from a string in Bash
Publish Date:2025/03/23 Views:61 Category:OPERATING SYSTEM
-
Removing the first character of a string can be tricky in Bash because there is no built-in function that can do this directly. However, there are several ways to achieve this, such as using the sed command, the cut command, or substring pa
String comparison operators in Bash
Publish Date:2025/03/23 Views:100 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:167 Category:操作系统
-
在本文中,我们将研究使用 BASH shell 进行字符串替换的几种方法。涉及字符串文字的一种常见操作是用其他字符或子字符串替换该字符串中的单个字符或子字符串。
Bash 中的字符串比较运算符
Publish Date:2023/05/18 Views:220 Category:操作系统
-
在本文中,我们将使用 if 语句解释 Bash 中的字符串比较。运行在 Linux 中,提供命令行界面供用户执行不同命令的 shell 程序称为 Bash shell。
在 Bash 中将字符串转换为整数
Publish Date:2023/05/18 Views:173 Category:操作系统
-
本篇文章将讨论 Bash 脚本中的字符串到整数的转换。 首先,我们将讨论字符串的数学运算问题,然后我们将了解如何将字符串转换为整数。