各行から値がゼロの列を削除するには?

各行から値がゼロの列を削除するには?

数値データを含むファイルがあります。各行には異なる数の列があります。各行からゼロを含む列を削除したいと思います。

以下は入力例です。

25 60 0
29 0 10
23 0
26 43 49
1 56 7 0
21 0 64 3

目標出力

25 60
29 10
23
26 43 49
1 56 7
21 64 3

答え1

パールの使用:

$ perl -alne 'print join " ", grep { $_ != 0 } @F' file
25 60
29 10
23
26 43 49
1 56 7
21 64 3

答え2

この試み、

sed 's/ 0//g;s/^0 //g' file

25 60
29 10
23
26 43 49
1 56 7
21 64 3

それだけでパターンを削除します0。出力が正常な場合は、インライン編集に-iオプションを使用します。

関連情報