我有一个程序将数据输出到文本文件,但截至目前它只是在文件末尾连接。我想使用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格式的方法。有一个简单的方法吗?
答案 0 :(得分:2)
您应该给我们一个输入流的示例和预期输出的示例。
现在,研究的一些要素:
您可以尝试以下方式:
formatRow=$(printf "%-12s%-9s%-9s%-12s%-9s%-14s%-10s" "$name" "$quiz" "$hw" "$midterm" "$final" "$numberGrade" "$letterGrade")
sed -i "s/^$name.*/$formatRow/" filename