仅显示相关列

仅显示相关列

我有以下命令。

(head -1 invoice.txt  && sed '1d' invoice.txt |sort -rn -k4,4) |column -ts $'\t' |less -S
  • head -1打印第一行。
  • sed "1d'删除第一行,这样软就不会混淆
  • sort -rn -k4,4仅按第四列对我的文件进行排序
  • column -ts $'\t'按选项卡拆分文件
  • less -S在终端上打印它

我只想打印第一列、第四列和最后一列。这是一个小文件,但我有一个包含十四列和一个包含二十一列,我将在其上使用此模板。

我不确定是否使用cutawkprint其他命令来管道我当前的输出。

答案1

您只想显示第 1 个、第 4 个和最后一个制表符分隔的列,并且希望对第二个列中的数据进行数字排序,而忽略标题。

awk -F '\t' 'BEGIN { OFS=FS } { print $1, $4, $NF }' invoice.txt >tmpfile

{
    head -n 1 tmpfile
    sed '1d' tmpfile | sort -k 2,2rn
} | less -S

或者,您可以绕过临时文件并通过管道将所有内容传递awk到复合命令中。如果需要的话{ ...; }添加column -ts $'\t'在前面less -S

相关内容