Bash で空白を削除する
このチュートリアルでは、xargs
コマンド、sed
コマンド、および awk
コマンドを使用して bash の空白をトリミングする方法を示します。
xargs
コマンドを使用して Bash の空白をトリミングする
xargs
は eXtended ARGuments
の略です。xargs
は標準入力から入力を読み取り、その入力をコマンドの引数に変換します。xargs
コマンドを使用して、bash の文字列から外部の空白を削除することもできます。
以下の例は、xargs
を使用して bash の文字列から空白を削除する方法を示しています。
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 !