如何删除文件中少于2位数的列?

如何删除文件中少于2位数的列?

我有一个文件看起来像:

输入:

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

我想删除每行少于 2 位数字的那些列。所以输出应该是这样的:

112 01
000 22
122 22

有什么建议吗?请注意,实际文件很大。

答案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

相关内容