인쇄하기 전에 정렬

인쇄하기 전에 정렬

다음 블록이 있습니다

while read -r line
do
  bad=$(cat node.txt  | grep -A1 success | grep -vi success | grep -i '|2|' | sed 's/|2|/ /g' | awk -v count_num=$count 'FNR==count_num')
  good=$(cat node.txt  | grep -A2 success | grep -vi success | grep -i '|1|'  | sed 's/|1|/ /g' | awk -v count_num=$count 'FNR==count_num')
  printf "| %-15s | %30s | %30s |\n" "$line" "$bad" "$good"
  count=$((count+1))
done <<< "$node"

내가 원하는 것을 올바른 형식으로 인쇄합니다. 3열은 내가 정렬하고 싶은 것입니다. 만약 내가

./script.sh | awk 'NR<4{print $0;next}{print $0|

열 머리글을 멋지게 이동하지 않고도 잘 정렬됩니다. 나는 이것을 스크립트 자체에 통합하여 스크립트를 실행하기 위해 awk를 사용할 필요가 없도록 하고 싶습니다.

다음과 같은 루프 뒤에 추가해 보았습니다.

done <<< "$node" | awk 'NR<4{print $0;next}{print $0| "sort -r -k3"}'

그러나 이것은 작동하지 않는 것 같습니다. 어떤 아이디어가 있나요? 감사해요

관련 정보