如何解决Linux:将两个子字符串连接到用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读入;做...;完成循环,因为对于较大的文件,读取非常慢。
我很想使用'cat'解决方案,像这样:
cat infile | echo $3" "$2","$4 >> staff.list
(我已经读过$ 0,$ 1,$ 2是输入参数...)
是否有cat解决方案,可能与 awk 或 cut 结合使用?
先谢谢您
-Linuxfluesterer
解决方法
$ awk '{printf "%s %s,%s\n",$3,$2,$5}' FS=\; infile
Robin Masters,38
Jennifer Jarau,29
James Clavell,78
或
$ awk '{print $3,$2 ",",78
sed
并不那么漂亮,但是您也可以这样做:
$ v='\([^;]*\)'
$ sed -e "s/$v;$v;$v;$v;$v/\3 \2,\5/" infile
Robin Masters,78
当然不需要cat
。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。