我有一个csv文件,看起来像这样:
ID,Name,Salary,Email
23,John,3000,john@gmail.com
15,Mike,3200,mike@gmail.com
16,Tom,3500,tom@gmail.com
如何使用ID作为标识符更改员工的工资?
我试着
echo "Id: "
read ID
echo "New salary: "
read s
awk -F "," '{ if ($1 = $ID) $3 = $s } END{print $0}' employees.csv
使用==
进行比较,而不是=
。
Shell变量不在单引号内展开。您应该使用-v
1选项将shell变量分配给awk
变量。
read -p "Id: " id
read -p "New salaray: " s
awk -F ',' -v id="$id" -v salary="$s" '$1 == id { $3 = salary; print }' employees.csv > new_employees.csv