在Unix中,我试图编写一系列剪切和粘贴命令(将每个命令的结果保存在一个文件中),这些命令将文件(下面)中的每个名称倒置,并在姓氏之后出现昏迷(例如,bill johnson变成johnson,bill)。
以下是我的文件入围名单:
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我能够从短列表中删除,但不确定如何将其粘贴到同一命令行中的文件中。这是我的剪裁代码:
cut -d: -f2 shortlist结果:
charles harris
bill johnson
robert dylan
john woodcock
barry wood现在我想把这个粘贴到我的文件文件中,当我猫文件更新时,结果应该如下所示,
harris, charles
johnson, bill
dylan, robert
woodcock, john
wood, barry请带我走过这段路。谢谢。
发布于 2016-10-14 17:55:11
你可以用一个awk来完成它:
awk -F: '{split($2,a, / /); if(a[2]) l=a[2] ", "; print l a[1]}' shortlist我假设,如果您没有第二个名称,则不希望打印逗号(并且名称中不超过两个单词)。
发布于 2016-10-14 17:47:52
使用cut拆分字符串后,使用awk比使用paste生成所需的结果要容易得多:
$ cut -d":" -f2 shortlist | awk '{printf "%s, %s\n", $2, $1}'https://stackoverflow.com/questions/40049094
复制相似问题