在 Bash 中去掉空白
Fumbani Banda
2023年1月30日
本教程展示了使用 xargs
命令、sed
命令和 awk
命令在 bash 中去掉空白。
在 Bash 中使用 xargs
命令去掉空白
xargs
代表 eXtended ARGuments
。xargs
从标准输入读取输入并将输入转换为命令的参数。xargs
命令还可用于从 bash 中的字符串中删除外部空格。
下面的示例说明了使用 xargs
从 bash 中的字符串中去掉空格。
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