我有一个文件(users_uid),其中用户和uid是两个参数,如下所示:
assds 611
dsdsd 612
xyzx 613
rerer 614
这些用户存在于机器中。我想将每个用户的 uid 更改为用户名赋予的值。我知道我可以使用 修改 uid usermod -u <uid> <user>
。但我不知道如何读取文件中的两个值并将它们作为 2 个参数放在为了使用 usermod 命令循环。
答案1
awk'{print“usermod -u“$2”“$1}'users_uid|bash
答案2
接受的答案存在执行数据文件中的恶意或意外内容的风险。这是执行您想要的操作的正确方法,无需生成额外awk
的副本,bash
而且可以避免我提到的风险。
while read -r user uid
do
usermod -u "$user" "$uid"
done < users_uid
作为一行代码:
while read -r user uid; do usermod -u "$user" "$uid"; done < users_uid