在 Bash 中去掉空白

Fumbani Banda 2023年1月30日 2022年5月11日
  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 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