繁体   English   中英

如何将剪切和粘贴命令用作单行命令?

[英]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分割字符串后,使用awkpaste来生成所需结果要容易得多:

$ cut -d":" -f2 shortlist | awk '{printf "%s, %s\n", $2, $1}'

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM