所以我需要在名字文件上使用cut命令来获取第一个字母,然后是姓氏的前7个字母 这些名称是这样组织的: Ann Arkest
cut -c1 ...... realnames > ./shortnames
我不确定我把它放在哪里....
答案 0 :(得分:0)
您无法使用仅限剪切来执行此操作,因为剪切仅允许字符列表或分隔字段列表,但不能同时使用两者。因此cut -c1 realnames
获取第一个首字母,而cut -f2 -d' ' realnames
获取姓氏,但您无法在一个命令中执行此操作。您可以始终使用两个剪切并写入临时文件,然后使用粘贴将它们拼接在一起。这样做的缺点是临时文件,你不能通过管道解决这个问题,因为粘贴需要两个标准输入流,这不是事情的工作方式。
所以,剪切和粘贴:
cut -c1 realnames>/tmp/names1
cut -f2 -d' ' realnames>/tmp/names2
paste -d '\0' /tmp/names1 /tmp/names2 > ./shortnames
rm /tmp/names1 /tmp/names2
但是如果你允许除了cut之外的程序(例如像paste)那么你也可以使用sed:
sed -e "s/^\(.\)[^ ]* \(.*\)$/\1\2/g" realnames > ./shortnames
哪个更短(但不那么容易阅读)。