结果

结果

我的数据中有以下数据file

alice bob cathy david elon
unix linux bsd

我想要输出仅最后 N 个实例排列的分隔符(即空格)

最后一个实例分隔符(空格)

alice bob cathy david     elon
unix linux                bsd

或为了倒数第二个实例分隔符(空格)

alice bob cathy     david elon
unix                linux bsd

答案1

当您的数据由以下字符分隔时:

perl -F'[:]' -lane '
   push @e, join $", splice @F, -1;
   push @A, join $", @F;
   length($A[-1]) > $maxW and $maxW = length($A[-1])}{
   print $_, $" x ($maxW - length), "\t", shift @e for @A;
' file

结果

alice bob cathy david   elon
unix linux              bsd

当您希望分隔最后 2 个元素时,请将参数列表-1中的 更改为,结果是:splice-2


alice bob cathy david elon
unix            linux bsd

解释

  • @e维护保存每行最后 N 个元素的数组。
  • @A从当前行中删除最后 N 个元素后,维护保存每行的数组。
  • 我们确定这些修剪线的最大宽度。
  • 读取所有行后,我们打印每个修剪行 + 差异空格,以使修剪行长度相等(在右侧填充空格之后)+ TAB + 最后 N 个元素。

相关内容