unexpandコマンドは、スペースをタブに変換することができます。
このunexpandコマンドとは逆のexpandコマンドもあります。
これらのコマンドは、ソースファイルの内容でスペースかタブかを統一するときに使うことができます。
目次
unexpandコマンドとは
unexpandコマンドとは、スペースをタブに変換するコマンドです。
expandコマンドの逆のコマンドで、どのくらいのスペースをタブに変換するかはタブストップ幅で決定します。
unexpandコマンドの利用例
タブストップ幅が8で行頭のスペースをタブに変換
(オプションなし)
unexpandコマンドはデフォルトでは、行頭のスペースのみをタブストップ幅が8で、タブに変換することができます。
コマンド例
1 |
unexpand hello.c |
hello.c
1 2 3 4 5 6 7 8 9 |
#include <stdio.h> int main(void){ str = "helloworld\n"; if(true){ printf(str); } return 0; } |
hello.c(cat -ET版) ▼表示
cat -Tはタブを^Iで表示します。
cat -Eは行の終端に$を追加します。
cat -Eは行の終端に$を追加します。
実行結果
1 2 3 4 5 6 7 8 9 |
#include <stdio.h> int main(void){ str = "helloworld\n"; if(true){ printf(str); } return 0; } |
実行結果 (cat -ET版) ▼表示
分かりにくいですが、スペースがタブに変換されています。
すべてのスペースをタブに変換
(-aオプション)
-aオプションは、すべてのスペースをタブストップ幅が8で、タブに変換することができます。
コマンド例
1 |
unexpand -a spacefile.txt |
spacefile.txt
1 2 3 4 |
one one one two two two three three three four four four |
spacefile.txt(cat -ET版) ▼表示
実行結果
1 2 3 4 |
one one one two two two three three three four four four |
実行結果 (cat -ET版) ▼表示
タブストップ幅を変更
(-tオプション)
-tオプションを用いることで、どのくらいのスペースをタブに変更するかのタブストップ幅を
変更することができます。
また、-tオプションは、暗黙的に-aオプションがONになることに注意が必要です。
また、-tオプションは、暗黙的に-aオプションがONになることに注意が必要です。
コマンド例
1 |
unexpand -t4 spacefile.txt |
spacefile.txt
1 2 3 4 |
one one one two two two three three three four four four |
spacefile.txt(cat -ET版) ▼表示
実行結果
1 2 3 4 |
one one one two two two three three three four four four |
実行結果 (cat -ET版) ▼表示
行頭のスペースのみをタブに変換
(--first-only)
--first-onlyは、行頭のスペースのみをタブに変換します。
また、--first-onlyは、-aオプションより優先されます。
つまり、-tオプションでONになった-aオプションをOFFにすることができます。
また、--first-onlyは、-aオプションより優先されます。
つまり、-tオプションでONになった-aオプションをOFFにすることができます。
コマンド例
1 |
unexpand --first-only -t4 hello.c |
hello.c
1 2 3 4 5 6 7 8 9 |
#include <stdio.h> int main(void){ str = "helloworld\n"; if(true){ printf(str); } return 0; } |
hello.c(cat -ET版) ▼表示
実行結果
1 2 3 4 5 6 7 8 9 |
#include <stdio.h> int main(void){ str = "helloworld\n"; if(true){ printf(str); } return 0; } |
実行結果 (cat -ET版) ▼表示
参考
外部リンクGnu Coreutils
外部リンクGnu Coreutils日本語版