在 Bash 中去掉空白

Fumbani Banda 2023年1月30日
  1. 在 Bash 中使用 xargs 命令去掉空白
  2. 在 Bash 中使用 sed 命令去掉空白
  3. 在 Bash 中使用 awk 命令去掉空白
在 Bash 中去掉空白

本教程展示了使用 xargs 命令、sed 命令和 awk 命令在 bash 中去掉空白。

在 Bash 中使用 xargs 命令去掉空白

xargs 代表 eXtended ARGumentsxargs 从标准输入读取输入并将输入转换为命令的参数。xargs 命令还可用于从 bash 中的字符串中删除外部空格。

下面的示例说明了使用 xargs 从 bash 中的字符串中去掉空格。

xargs

xargs 命令删除字符串开头和结尾的空格。它不会删除字符串中的内部空格。从上图中,,world 之间的内部空格没有被删除,而字符串开头和结尾的空格已被删除。

在 Bash 中使用 sed 命令去掉空白

sed 命令还可用于在 bash 中去掉字符串开头和结尾的空格。下面的脚本使用 sed 命令从 bash 中的字符串中去掉尾随和前导空格。

text="   Bash is Fun   "
#print the original text
echo "$text"

#remove whitespaces
var=`echo $text | sed 's/ *$//g'`

echo "Hi there $var!"

运行脚本会显示以下输出。

   Bash is Fun
Hi there Bash is Fun!  

在 Bash 中使用 awk 命令去掉空白

awk 命令还用于在 bash 中去掉文件或字符串的空白。使用 awk,我们可以去掉字符串开头的空格,也可以去掉字符串末尾的空格,或两者兼而有之。

让我们编写一个使用 awk 去掉字符串开头的空格的 bash 脚本。这个 (/^[ \t]+/,"") 告诉 awk 命令将文本开头的空格替换为空,""

text="   Bash is Fun   "
#print the original text
echo "$text"

#print the new text after trimming the whitespace at the beginning
echo "$text" | awk '{gsub(/^[ \t]+/,""); print$0, "!"}'

让我们运行脚本。

bash trim_start.sh

该脚本产生以下输出。

   Bash is Fun
Bash is Fun    !

从输出中,我们可以看到字符串开头的空格已被删除。

让我们编写一个 bash 脚本来删除字符串末尾的空格。

text="   Bash is Fun   "
#print the original text
echo "$text"

#print the new text after trimming the whitespace at the end
echo "$text" | awk '{gsub(/[ \t]+$/,""); print$0, "!"}'

让我们运行脚本。

bash trim_end.sh

运行脚本会产生以下输出。

   Bash is Fun
   Bash is Fun !

现在,让我们编写一个 bash 脚本,在 bash 脚本的开头和结尾去掉空格。

text="   Bash is Fun   "
#print the original text
echo "$text"

#print the new text after trimming the whitespace at the start and end
echo "$text" | awk '{gsub(/^[ \t]+| [ \t]+$/,""); print$0, "!"}'

让我们运行脚本。

bash trim.sh

该脚本将以下输出显示到标准输出。前导和尾随空格已从字符串中删除。

   Bash is Fun
Bash is Fun !
作者: Fumbani Banda
Fumbani Banda avatar Fumbani Banda avatar

Fumbani is a tech enthusiast. He enjoys writing on Linux and Python as well as contributing to open-source projects.

LinkedIn GitHub

相关文章 - Bash String