【发布时间】:2020-06-30 19:53:59
【问题描述】:
例如我有以下文件:
4:Oscar:Ferk:Florida
14:Steven:Pain:Texas
7:Maya:Ross:California
等等…… 它的行数未知,因为您可以继续添加更多行。 我正在编写一个脚本,您可以在其中通过输入人员的 id 和您要为其提供的新名称作为参数来编辑名称。
我想要做的是使用 awk 来查找该行,然后更改该特定行的名称并更新文件。我遇到了麻烦,因为我的代码将每一列的值更新为给定的值。
我当前的代码是:
getID=$1
getName=$2
awk -v varID="$getID" -F':' '$0~varID' file.dat | awk -v varName="$getName" -F':' '$2=varName' file.dat > tmp && mv tmp file.dat
非常感谢您的帮助,提前感谢您。
【问题讨论】:
-
提示如果你想了解你做错了什么:只运行
awk -v varName="AA" -F':' '$2=varName' file.dat。 否则,请使用下面的答案。