Linux: 将两个子字符串连接到一个新行,来自用 cat 读取的 infile
Linux: concatenate two substrings to a new line from infile read with cat
我有一个 infile,比方说:
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
但我不会使用 'while read in; do ...; done' 循环,因为对于更大的文件,读取速度非常非常慢。
我希望有一个 'cat' 的解决方案,像这样:
cat infile | echo " "", " >> staff.list
(我看过$0,$1,$2是输入参数...)
是否有猫的解决方案,也许与 awk 或 cut 结合使用?
提前谢谢你,
-Linuxfluesterer
$ awk '{printf "%s %s, %s\n", , , }' FS=\; infile
Robin Masters, 38
Jennifer Jarau, 29
James Clavell, 78
或
$ awk '{print , ",", }' FS=\; infile
Robin Masters, 38
Jennifer Jarau, 29
James Clavell, 78
它没有 sed
漂亮,但你也可以这样做:
$ v='\([^;]*\)'
$ sed -e "s/$v;$v;$v;$v;$v/ , /" infile
Robin Masters, 38
Jennifer Jarau, 29
James Clavell, 78
当然不需要cat
。
我有一个 infile,比方说:
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
但我不会使用 'while read in; do ...; done' 循环,因为对于更大的文件,读取速度非常非常慢。
我希望有一个 'cat' 的解决方案,像这样:
cat infile | echo " "", " >> staff.list
(我看过$0,$1,$2是输入参数...)
是否有猫的解决方案,也许与 awk 或 cut 结合使用?
提前谢谢你,
-Linuxfluesterer
$ awk '{printf "%s %s, %s\n", , , }' FS=\; infile
Robin Masters, 38
Jennifer Jarau, 29
James Clavell, 78
或
$ awk '{print , ",", }' FS=\; infile
Robin Masters, 38
Jennifer Jarau, 29
James Clavell, 78
它没有 sed
漂亮,但你也可以这样做:
$ v='\([^;]*\)'
$ sed -e "s/$v;$v;$v;$v;$v/ , /" infile
Robin Masters, 38
Jennifer Jarau, 29
James Clavell, 78
当然不需要cat
。