形式を変更したいです。
送信者: サンプル.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.txt
POSIXシェルを使用していると仮定すると、次のように言うことができます。
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
。