Linux:将两个子字符串连接到infle read with cat的新行

Linux:将两个子字符串连接到infle read with cat的新行,linux,cat,Linux,Cat,我有一个填充,比如说: 01;Masters;Robin;Atlanta;38 02;Jarau;Jennifer;Washington;29 03;Clavell;James;New York;78 ... 我想创建一个如下所示的输出: Robin Masters, 38 Jennifer Jarau, 29 James Clavell, 78 cat infile | echo $3" "$2", "$4 >> staff.list

我有一个填充,比如说:

01;Masters;Robin;Atlanta;38
02;Jarau;Jennifer;Washington;29
03;Clavell;James;New York;78
...
我想创建一个如下所示的输出:

Robin Masters, 38
Jennifer Jarau, 29
James Clavell, 78
cat infile | echo $3" "$2", "$4 >> staff.list
但我不会在阅读时使用“whilereadin”;做“完成”循环,因为对于较大的文件,读取速度非常非常慢

我希望有一个关于“cat”的解决方案,如下所示:

Robin Masters, 38
Jennifer Jarau, 29
James Clavell, 78
cat infile | echo $3" "$2", "$4 >> staff.list
(我读到$0、$1、$2是输入参数…)

cat是否有解决方案,可能与awk或cut结合使用

提前谢谢大家,

-利努克斯氟酯

$ awk '{printf "%s %s, %s\n", $3, $2, $5}' FS=\; infile
Robin Masters, 38
Jennifer Jarau, 29
James Clavell, 78

使用
sed
,它没有那么漂亮,但您也可以:

$ v='\([^;]*\)'
$ sed -e "s/$v;$v;$v;$v;$v/\3 \2, \5/" infile
Robin Masters, 38
Jennifer Jarau, 29
James Clavell, 78
当然不需要
cat