在 Bash 中去掉空白
Fumbani Banda
2023年1月30日
2022年5月11日
本教程展示了使用 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 !
Author: Fumbani Banda