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

标签 linux unix

在Unix中,我试图编写一系列剪切和粘贴命令(将每个命令的结果保存在文件中),该命令反转文件(下面)候选列表中的每个名称,并在姓氏后面放置一个逗号(例如,比尔约翰逊成为约翰逊,比尔)。

这是我的文件候选名单:

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 个)。

关于linux - 如何将剪切和粘贴命令用作单行命令?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40049094/

相关文章:

linux - 我如何获得由 grub2 以与发行版无关的方式加载为根设备的 cpio 归档文件制成的 initrd?

windows - VMware 和 iptables

c - 收到 SIGSEGV 信号后的处理行为?

unix - 不能使用 '>' 或 '>>' 从 log.Println() 和 log.Printf() 写入文件

c - C 中的“fopen”无法在 Unix 上打开当前目录中的现有文件

c - Tizen 中的通知

linux - 如何创建 77 个文件,其内容是每个文件的名称?

linux - 记录终端命令

bash - curl 获取请求参数列表太长

linux - Logstash 不产生输出