2番目の列が変更された場合、3番目の列はどのように変わりますか?

2番目の列が変更された場合、3番目の列はどのように変わりますか?

コマンドの出力があります。

CPU_SrcID#0_MC#0_Chan#0_DIMM#0  0  0      A1
CPU_SrcID#0_MC#0_Chan#1_DIMM#0  0  0      A2
CPU_SrcID#0_MC#0_Chan#2_DIMM#0  0  0      A3
CPU_SrcID#0_MC#1_Chan#0_DIMM#0  0  0      A4
CPU_SrcID#0_MC#1_Chan#1_DIMM#0  0  0      A5
CPU_SrcID#0_MC#1_Chan#2_DIMM#0  0  1      A6
CPU_SrcID#1_MC#0_Chan#0_DIMM#0  0  0      B1
CPU_SrcID#1_MC#0_Chan#1_DIMM#0  0  0      B2
CPU_SrcID#1_MC#0_Chan#2_DIMM#0  0  0      B3
CPU_SrcID#1_MC#1_Chan#0_DIMM#0  0  0      B4
CPU_SrcID#1_MC#1_Chan#1_DIMM#0  0  0      B5
CPU_SrcID#1_MC#1_Chan#2_DIMM#0  0  0      B6

だから私のすべての列はまっすぐです。変更される唯一の数字は、2列と3列の数字です。ただし、数字の1つが小数点以下の2桁以上に変更されると、3番目の列が残りの列と一致しなくなります。

CPU_SrcID#0_MC#0_Chan#0_DIMM#0  0  0      A1
CPU_SrcID#0_MC#0_Chan#1_DIMM#0  15  0      A2
CPU_SrcID#0_MC#0_Chan#2_DIMM#0  0  0      A3
CPU_SrcID#0_MC#1_Chan#0_DIMM#0  0  0      A4
CPU_SrcID#0_MC#1_Chan#1_DIMM#0  0  0      A5
CPU_SrcID#0_MC#1_Chan#2_DIMM#0  0  347      A6
CPU_SrcID#1_MC#0_Chan#0_DIMM#0  0  0      B1
CPU_SrcID#1_MC#0_Chan#1_DIMM#0  0  0      B2
CPU_SrcID#1_MC#0_Chan#2_DIMM#0  0  0      B3
CPU_SrcID#1_MC#1_Chan#0_DIMM#0  0  0      B4
CPU_SrcID#1_MC#1_Chan#1_DIMM#0  0  0      B5
CPU_SrcID#1_MC#1_Chan#2_DIMM#0  0  0      B6

数字の小数点以下の桁数に関係なく、どのように列を正確に維持できますか?これが私が望む方法です。

CPU_SrcID#0_MC#0_Chan#0_DIMM#0  0  0      A1
CPU_SrcID#0_MC#0_Chan#1_DIMM#0  15 0      A2
CPU_SrcID#0_MC#0_Chan#2_DIMM#0  0  0      A3
CPU_SrcID#0_MC#1_Chan#0_DIMM#0  0  0      A4
CPU_SrcID#0_MC#1_Chan#1_DIMM#0  0  0      A5
CPU_SrcID#0_MC#1_Chan#2_DIMM#0  0  347    A6
CPU_SrcID#1_MC#0_Chan#0_DIMM#0  0  0      B1
CPU_SrcID#1_MC#0_Chan#1_DIMM#0  0  0      B2
CPU_SrcID#1_MC#0_Chan#2_DIMM#0  0  0      B3
CPU_SrcID#1_MC#1_Chan#0_DIMM#0  0  0      B4
CPU_SrcID#1_MC#1_Chan#1_DIMM#0  0  0      B5
CPU_SrcID#1_MC#1_Chan#2_DIMM#0  0  0      B6

ベストアンサー1

コードを修正できない場合生産する書式を設定すると、最初からソートされた列を含むデータが生成され、その後このcolumnユーティリティを使用して出力を後処理できます。

some_command | column -t

質問で誤ってソートされたデータを実行すると、column -t次の出力が生成されます。

CPU_SrcID#0_MC#0_Chan#0_DIMM#0  0   0    A1
CPU_SrcID#0_MC#0_Chan#1_DIMM#0  15  0    A2
CPU_SrcID#0_MC#0_Chan#2_DIMM#0  0   0    A3
CPU_SrcID#0_MC#1_Chan#0_DIMM#0  0   0    A4
CPU_SrcID#0_MC#1_Chan#1_DIMM#0  0   0    A5
CPU_SrcID#0_MC#1_Chan#2_DIMM#0  0   347  A6
CPU_SrcID#1_MC#0_Chan#0_DIMM#0  0   0    B1
CPU_SrcID#1_MC#0_Chan#1_DIMM#0  0   0    B2
CPU_SrcID#1_MC#0_Chan#2_DIMM#0  0   0    B3
CPU_SrcID#1_MC#1_Chan#0_DIMM#0  0   0    B4
CPU_SrcID#1_MC#1_Chan#1_DIMM#0  0   0    B5
CPU_SrcID#1_MC#1_Chan#2_DIMM#0  0   0    B6

この動作の1つの可能な欠点は、列間column -tの最小距離が2つの空間に減少することである。

以下のソートされていないデータに示すように、データと共にソート文字(フィールド区切り文字)を出力してこの問題を「修正」することもできます。

CPU_SrcID#0_MC#0_Chan#0_DIMM#0  |0  |0      |A1         
CPU_SrcID#0_MC#0_Chan#1_DIMM#0  |15  |0      |A2        
CPU_SrcID#0_MC#0_Chan#2_DIMM#0  |0  |0      |A3         
CPU_SrcID#0_MC#1_Chan#0_DIMM#0  |0  |0      |A4         
CPU_SrcID#0_MC#1_Chan#1_DIMM#0  |0  |0      |A5         
CPU_SrcID#0_MC#1_Chan#2_DIMM#0  |0  |347      |A6       
CPU_SrcID#1_MC#0_Chan#0_DIMM#0  |0  |0      |B1         
CPU_SrcID#1_MC#0_Chan#1_DIMM#0  |0  |0      |B2         
CPU_SrcID#1_MC#0_Chan#2_DIMM#0  |0  |0      |B3         
CPU_SrcID#1_MC#1_Chan#0_DIMM#0  |0  |0      |B4         
CPU_SrcID#1_MC#1_Chan#1_DIMM#0  |0  |0      |B5         
CPU_SrcID#1_MC#1_Chan#2_DIMM#0  |0  |0      |B6        

このデータを使用すると、column -t -s '|'次の結果が得られます。

CPU_SrcID#0_MC#0_Chan#0_DIMM#0    0     0          A1         
CPU_SrcID#0_MC#0_Chan#1_DIMM#0    15    0          A2        
CPU_SrcID#0_MC#0_Chan#2_DIMM#0    0     0          A3         
CPU_SrcID#0_MC#1_Chan#0_DIMM#0    0     0          A4         
CPU_SrcID#0_MC#1_Chan#1_DIMM#0    0     0          A5         
CPU_SrcID#0_MC#1_Chan#2_DIMM#0    0     347        A6       
CPU_SrcID#1_MC#0_Chan#0_DIMM#0    0     0          B1         
CPU_SrcID#1_MC#0_Chan#1_DIMM#0    0     0          B2         
CPU_SrcID#1_MC#0_Chan#2_DIMM#0    0     0          B3         
CPU_SrcID#1_MC#1_Chan#0_DIMM#0    0     0          B4         
CPU_SrcID#1_MC#1_Chan#1_DIMM#0    0     0          B5         
CPU_SrcID#1_MC#1_Chan#2_DIMM#0    0     0          B6

おすすめ記事