【发布时间】:2013-10-29 18:47:48
【问题描述】:
我有一个将数据输出到文本文件的程序,但到目前为止它只是在文件末尾连接。我想使用 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 格式的方法。有没有简单的方法可以做到这一点?
【问题讨论】:
-
你能提供样本数据吗?
-
printf 函数中的变量(name、quiz、hw、midterm、final、numberGrade、letterGrade)必须按照代码块中 printf 指定的精确格式输出。要匹配的模式将是具有匹配 $name 变量的第一行。输出看起来像:Jon 89 90 45 32 72.2 C-(除了输出会像 printf 那样格式化。所以,如果一行匹配单词“Jon”,那一行将被替换为新数据。