ファイルから2桁未満の列を削除する方法は?

ファイルから2桁未満の列を削除する方法は?

次のファイルがあります。

入力する:

112 1 2 01 1 
000 0 0 22 0
122 2 2 22 0

1行あたり2桁未満の列を削除したいと思います。したがって、出力は次のようになります。

112 01
000 22
122 22

どんな提案がありますか?実際のファイルの容量がかなり大きいので注意してください。

答え1

1つの可能な方法はPerlを使用することです。

perl -alne 'print join " ", grep { length > 1 } @F' file

答え2

sed(またはawkやPerlなどのより強力なツール)を使用してこれを実行できます。

例えば

  sed -e :loop \
        -e 's/^[0-9]\{1\} //' \
        -e 's/ [0-9]\{1\}$//' \
        -e 's/ [0-9]\{1\} / /g' \
        -e 't loop' <input >output

関連情報