GNUを使用している場合、コマンドは次のように要約できますsed。
$ sed 's/^[ \t]*//;s/[ \t]*$//' < file
例
上記のコマンドが実行中です。
$ echo -e " \t   blahblah  \t  " | sed 's/^[ \t]*//;s/[ \t]*$//'
blahblah
を使用hexdumpして、sedコマンドが目的の文字を正しく削除していることを確認できます。
$ echo -e " \t   blahblah  \t  " | sed 's/^[ \t]*//;s/[ \t]*$//' | hexdump -C
00000000  62 6c 61 68 62 6c 61 68  0a                       |blahblah.|
00000009
キャラクタークラス
次のようなセットを文字通りリストする代わりに、文字クラス名を使用することもできます[ \t]:
$ sed 's/^[[:blank:]]*//;s/[[:blank:]]*$//' < file
例
$ echo -e " \t   blahblah  \t  " | sed 's/^[[:blank:]]*//;s/[[:blank:]]*$//'
正規表現(regex)を使用するGNUツールのほとんどは、これらのクラスをサポートしています。
 [[:alnum:]]  - [A-Za-z0-9]     Alphanumeric characters
 [[:alpha:]]  - [A-Za-z]        Alphabetic characters
 [[:blank:]]  - [ \x09]         Space or tab characters only
 [[:cntrl:]]  - [\x00-\x19\x7F] Control characters
 [[:digit:]]  - [0-9]           Numeric characters
 [[:graph:]]  - [!-~]           Printable and visible characters
 [[:lower:]]  - [a-z]           Lower-case alphabetic characters
 [[:print:]]  - [ -~]           Printable (non-Control) characters
 [[:punct:]]  - [!-/:-@[-`{-~]  Punctuation characters
 [[:space:]]  - [ \t\v\f]       All whitespace chars
 [[:upper:]]  - [A-Z]           Upper-case alphabetic characters
 [[:xdigit:]] - [0-9a-fA-F]     Hexadecimal digit characters
リテラルセットの代わりにこれらを使用することは、常にスペースの無駄のように思えますが、コードの移植性や、別の文字セット(国際的なことを考える)に対処する必要がある場合は、クラス名を使用することをお勧めします代わりに。
参照資料