sb_rtrim <概要> sb_rtrim : bashスクリプトの右端余白を除去 sb_rtrim = shell beautifier for right side triming <書式> Usage : sb_rtrim Version : Mon Aug 8 13:28:44 JST 2016 UTF-8 <説明> 標準入力からシェルスクリプトの全体あるいは一部を読み込み、右側の余計な空白(半角・全角)やタブを取り除きます。 <例1> 次のようなスクリプトを読み込ませます。 ---------------------------------------------------- [usp@commands64 BIN]$ cat exp1.sh #!/bin/bash seq 1 5 | <-ここまで空白アリ awk '{print $1,$1*$1}' | <-ここまで空白アリ awk '{print $1,$2, $2*$1}' | cat > hoge ---------------------------------------------------- sb_rtrimを通すと、パイプ横の空白が取れます。 ---------------------------------------------------- [usp@commands64 BIN]$ cat exp1.sh | ./sb_rtrim #!/bin/bash seq 1 5 |<-空白が詰まる awk '{print $1,$1*$1}' |<-空白が詰まる awk '{print $1,$2, $2*$1}' | cat > hoge ---------------------------------------------------- <例2> vimから呼び出すことができます。 スクリプト全体を整形するときはvimの画面で以下のように打ちます。 ---------------------------------------------- |#!/bin/bash | |seq 1 5 | <-ここまで空白 |awk '{print $1,$1*$1}' | <-ここまで空白 |awk '{print $1,$2, $2*$1}' | |cat > hoge ------------------------------------------------ 行指定で整形することもできます。vimの画面で以下のように打ちます。 ---------------------------------------------- |#!/bin/bash | |seq 1 5 |<-空白が詰まる |awk '{print $1,$1*$1}' |<-空白が詰まる |awk '{print $1,$2, $2*$1}' | |cat > hoge | |:3,4! sb_rtrim ------------------------------------------------ <例3> オプションやヒアドキュメントは無視されます。 ---------------------------------------------------- [usp@commands64 BIN]$ cat exp2.sh #!/bin/bash echo 'hoge boke <-ここまで空白 hoge' seq 1 5 | #1:数字 awk '{print $1,$1*$1}' | <-ここまで空白 #1:数字 2:第一フィールドの二乗 awk '{print $1,$2, \ <-ここまで空白 $2*$1}' #1:数字 2:第一フィールドの二乗 3:第一フィールドの三乗 cat << FIN hoge hoge | <-ここまで空白 hoge FIN ---------------------------------------------------- 適用後 ---------------------------------------------------- [usp@commands64 BIN]$ cat exp2.sh #!/bin/bash echo 'hoge boke <-とれない hoge' seq 1 5 | #1:数字 awk '{print $1,$1*$1}' |<-空白が詰まる #1:数字 2:第一フィールドの二乗 awk '{print $1,$2, \ <-とれない $2*$1}' #1:数字 2:第一フィールドの二乗 3:第一フィールドの三乗 cat << FIN hoge hoge | <-とれない hoge FIN ---------------------------------------------------- <バグ> 構文解析を完璧にしているわけではないので、不具合が出ることがあります。 viから呼び出した場合は、エラーのトレース情報でスクリプトが上書きされることがあります。そのような場合はundoしてください。