0

我有一个将数据输出到文本文件的程序,但到目前为止它只是在文件末尾连接。我想使用 printf 获取一些格式化的输出,并告诉 sed 或 awk 替换该 .txt 中的某一行。

我尝试过使用几种不同的方法。现在我正在尝试细化以 $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 回答