書式の変更と数の並べ替え

書式の変更と数の並べ替え

形式を変更したいです。

送信者: サンプル.txt

   Count   Data
   1 C0263/Pre-approved Auto Load BC
   1 C0263/Pre-approved Auto Load BC Holders
   3 C0268/Pre-approved Auto Loan

受信者:output.txt

   Data                                       Count
   C0263/Pre-approved Auto Load BC            1
   C0263/Pre-approved Auto BC Holders         1
   C0268/Pre-approved Auto Loan               3

答え1

アッ解決策:

awk 'NR==1{ printf "%4s%-44s%s\n",FS,$2,$1; next }
     { f1=$1; sub(/^ *[^ ]+ */,""); printf "%4s%-44s%s\n",FS,$0,f1 }' Sample.txt

出力:

    Data                                        Count
    C0263/Pre-approved Auto Load BC             1
    C0263/Pre-approved Auto Load BC Holders     1
    C0268/Pre-approved Auto Loan                3

答え2

入力データがファイルにあり、datafile.txtPOSIXシェルを使用していると仮定すると、次のように言うことができます。

sed -e 's/^\s*//' -e 's/\s\+/:/' datafile.txt | while IFS=':' read a b; do
  printf '%-30.29s%s\n' "$b" "$a"
done

このsedコマンドは、(1) すべての先行スペースを削除し、(2) 1 つ以上のスペースが最初に現れることをコロンで置き換えます。結果は、whileコロンで区切られた2つのフィールドを読み取るループにパイプされ、素敵に印刷されます。

入力データがパイプから出てくる場合は、パラメータを削除してdatafile.txtくださいsed

関連情報