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

时间:2016-10-14 17:43:58

标签: linux unix

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

这是我的文件候选名单:

for i in `seq 1 10`;
    do
        python myfile.py && cp temp.txt outputs/out$i.txt &
    done

我可以从候选名单中删除,但不知道如何将其粘贴到同一命令行中的filenew文件中。这是我的剪切代码:

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

现在我希望将它粘贴到我的filenew文件中,当我cat filenew时,结果应该如下所示,

charles harris
bill johnson
robert dylan
john woodcock
barry wood

请指导我完成这个。谢谢。

2 个答案:

答案 0 :(得分:2)

你可以用一个awk来做:

awk -F: '{split($2,a, / /); if(a[2]) l=a[2] ", "; print l a[1]}' shortlist

我假设如果你没有第二个名字,你就不想打印逗号(并且名字中不能超过2个单词)。

答案 1 :(得分:1)

一旦您使用cut分割字符串,使用awkpaste更容易产生您想要的结果:

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