2つの列の長さが異なる場合、どのようにゼロを追加しますか?

2つの列の長さが異なる場合、どのようにゼロを追加しますか?

2つの列があり、1つの列には20個のデータがあり、2番目の列には16個のデータがあります。だから、2列の長さが同じになることを望みます。では、どのようにゼロを追加しますか?次のファイルがあります。

1 2  
3 4   
4 5  
7    
8   
8

したがって、最初の列には6つの要素があり、2番目の列には3つの要素があります。だから私は2番目の列に0を追加して2つの列を同じにしたいと思います。したがって、出力ファイルは次のようになります。

1 2        
3 4  
4 5   
7 0  
8 0    
8 0 

ベストアンサー1

そしてawk

awk 'NF < 2 {$2 = 0}; 1' < file

0与えられたレコードのフィールド数()がNF2より小さい場合、2番目のフィールドはに設定されます。

これは、フィールドのない行(空の行)に対して提供されます" 0"。代わりに、次のことができます。

awk 'NF < 1 {$1 = 0}; NF < 2 {$2 = 0}; 1' < file

ORこの行を使用するには"0 0"

awk 'NF && NF < 2 {$2 = 0}; 1' < file

空白行を維持します。

おすすめ記事