在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
请指导我完成这个。谢谢。
答案 0 :(得分:2)
你可以用一个awk来做:
awk -F: '{split($2,a, / /); if(a[2]) l=a[2] ", "; print l a[1]}' shortlist
我假设如果你没有第二个名字,你就不想打印逗号(并且名字中不能超过2个单词)。
答案 1 :(得分:1)
一旦您使用cut
分割字符串,使用awk
比paste
更容易产生您想要的结果:
$ cut -d":" -f2 shortlist | awk '{printf "%s, %s\n", $2, $1}'