관련 열만 표시

관련 열만 표시

다음 명령이 있습니다.

(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터미널에서 인쇄하세요

첫 번째, 네 번째, 마지막 열만 인쇄하고 싶습니다. 작은 파일이지만 이 템플릿을 사용할 14개의 열이 있는 파일과 21개의 열이 있는 파일이 있습니다.

현재 출력을 파이프하기 위해 cut, awk또는 다른 명령을 사용해야 할지 잘 모르겠습니다 .print

답변1

첫 번째, 네 번째 및 마지막 탭으로 구분된 열만 표시하고 두 번째 열의 데이터는 머리글을 무시하고 숫자로 정렬하려고 합니다.

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

관련 정보