数値の右揃え(recfmt出力)

数値の右揃え(recfmt出力)

私はプレーンテキスト形式のUnixデータベースを作成するためにGNU Recutilsを使用しています。次のスクリプトを使用すると、選択したカテゴリの書籍のリストを取得できます。

recsel -t book -e "Category='$1'" "$RECFILE" | recfmt -f bycat.templ

出力は次のとおりです。

1: Book title
2: Book title
55: Book title
128: Book title

ファイルにはbycat.templ次の内容が含まれています。

{{Id}}: {{Title}} (read: {{Read}})

ドキュメントによると、ファイルの正しい並べ替えを定義することは不可能なようです。手動

printfだから私は各行に対して、awkまたはxargsbucleを使ってUnixソリューションを見つけようとしました。for私はこれを達成する方法がわからない。

希望の出力:

  1: Book title
  2: Book title
 55: Book title
128: Book title

ベストアンサー1

あなたのため:

文書:book.awk

BEGIN {
    FS = ":"
}
{
    id = $1
    $1 = ""
    sub(/^ +/, "", $0)
    printf("%3d: %s\n", id, $0)
}

実装する:

recsel ... | recfmt ... | awk -f book.awk

出力:

  1: Book title
  2: Book title
 55: Book title
128: Book title

おすすめ記事