从由分隔符分隔的文件中分配变量

Ven*_*nom 2 awk shell-script text-processing

我有一个包含以下数据的文本文件,由分隔符分隔:

1000:Tom:user1
1002:Jerry:user2
1003:Victor:user3
1004:Jason:user4
Run Code Online (Sandbox Code Playgroud)

我需要运行一个 while 循环(任何循环)来从第一行获取详细信息并分配如下变量:

uid:1000
username:Tom
userid:user1
Run Code Online (Sandbox Code Playgroud)

该脚本应该能够收集详细信息,直到文件“数据”结束。一旦我能够为第一行做,我就可以做这部分。

ter*_*don 5

如果你不想使用,awk你可以做类似的事情

while IFS=: read -r uid username userid; do
  printf "user:%s\nusername:%s\nuserid:%s\n" "$uid" "$username" "$userid"; 
done <file 
user:1000
username:Tom
userid:user1
user:1002
username:Jerry
userid:user2
user:1003
username:Victor
userid:user3
user:1004
username:Jason
userid:user4
Run Code Online (Sandbox Code Playgroud)

IFS是输入记录分隔符,设置为:可以直接从文件中读取变量。