HOWTO · Bash

Bash で空白を削除する

このチュートリアルでは、xargs コマンド、sed コマンド、および awk コマンドを使用して bash の空白をトリミングする方法を示します。

このページの内容

このチュートリアルでは、xargs コマンド、sed コマンド、および awk コマンドを使用して bash の空白をトリミングする方法を示します。

xargs コマンドを使用して Bash の空白をトリミングする

xargs は eXtended ARGuments の略です。xargs は標準入力から入力を読み取り、その入力をコマンドの引数に変換します。xargs コマンドを使用して、bash の文字列から外部の空白を削除することもできます。

以下の例は、xargs を使用して bash の文字列から空白を削除する方法を示しています。

xargs

xargs コマンドは、文字列の最初と最後のスペースを削除します。文字列の内部空白は削除されません。上の画像から、, と world の間の内部空白は削除されていませんが、文字列の最初と最後のスペースは削除されています。

sed コマンドを使用して Bash の空白をトリミングする

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!  

awk コマンドを使用して Bash の空白をトリミングする

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 !