0

データをテキストファイルに出力するプログラムがありますが、現時点ではファイルの最後に連結するだけです。printf を使用してフォーマットされた出力を取得し、その .txt の特定の行を置き換えるように sed または awk に指示したいと考えています。

私はいくつかの異なる方法を使用してみました。現在、 $name で始まる行を細分化して、次のように置き換えようとしています

printf "%-12s%-9s%-9s%-12s%-9s%-14s%-10s\n" "$name" "$quiz" "$hw" "$midterm" "$final"          
                  "$numberGrade" "$letterGrade"

私は sed -i /^$name/\c を使用しようとしています...しかし、変数に設定した場合、printf フォーマットを保持する方法が見つかりません。これを行う簡単な方法はありますか?

4

1 に答える 1

2

入力ストリームの例と期待される出力の例を教えてください。

さて、研究のいくつかの要素:

  • awk は printf 関数の実装を提供します
  • 次のようなものを試すことができます:

    formatRow=$(printf "%-12s%-9s%-9s%-12s%-9s%-14s%-10s" "$name" "$quiz" "$hw" "$midterm" "$final" "$numberGrade" "$letterGrade")
    sed -i "s/^$name.*/$formatRow/" filename
    
于 2013-10-29T10:32:08.913 に答える