![](/img/trans.png)
[英]How to use cut and paste commands as a single line command without using grep,sed awk, perl?
[英]How to use cut and paste commands as a single line command?
在Unix中,我试图编写一系列剪切和粘贴命令(将每个命令的结果保存在文件中),以反转文件(在以下列表中)的每个名称,并在姓氏后放置一个逗号(例如,Bill johnson)成为约翰逊,比尔)。
这是我的文件清单:
2233:charles harris :g.m. :sales :12/12/52: 90000
9876:bill johnson :director :production:03/12/50:130000
5678:robert dylan :d.g.m. :marketing :04/19/43: 85000
2365:john woodcock :director :personnel :05/11/47:120000
5423:barry wood :chairman :admin :08/30/56:160000
我可以从清单中剪切出来,但是不确定如何在同一命令行中将其粘贴到我的filenew文件中。 这是我剪切的代码:
cut -d: -f2 shortlist
结果:
charles harris
bill johnson
robert dylan
john woodcock
barry wood
现在,我希望将其粘贴到我的filenew文件中,当我选择filenew时,结果应如下所示,
harris, charles
johnson, bill
dylan, robert
woodcock, john
wood, barry
请指导我。 谢谢。
您可以用一个awk来做到这一点:
awk -F: '{split($2,a, / /); if(a[2]) l=a[2] ", "; print l a[1]}' shortlist
我假设如果您没有第二个名字,那么您不想打印逗号(并且名字中的字数不能超过2个)。
使用cut
分割字符串后,使用awk
比paste
来生成所需结果要容易得多:
$ cut -d":" -f2 shortlist | awk '{printf "%s, %s\n", $2, $1}'
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.