출력을 생성한 다음 이메일을 보내는 간단한 awk 명령이 있습니다.
awk '(NR==FNR){a[$2]=sprintf("%.2f",$1*value); next} {print $1,$2,a[$2]}' OFS="\t\t\t" value=$COST /tmp/1.txt /tmp/2.txt
그러나 마지막 열은 두 번째 열을 기준으로 잘못 정렬되었습니다.
510G /path/to/aaaaaaaaaaaaa/ 0.00
157G /path/to/bbbbbbbbb/ 0.00
253M /path/to/ccccccccccccccc/ 0.00
61M /path/to/dddddddd/ 0.00
16K /path/to/eeeee/ 0.00
8.0K /path/to/fffffffff/ 0.00
이것이 항상 정렬되도록 하려면 어떻게 해야 합니까? /path/to
정적입니다.
답변1
명령 출력을 파이프로 연결하여 column -t
출력 형식을 열로 지정할 수 있습니다. 입력은 공백으로 구분되어야 하므로 추가해야 하는 탭 수를 추측할 필요가 없습니다.
예를 들어 파일에 다음이 포함되어 있다고 가정합니다.
510G /path/to/aaaaaaaaaaaaa/ 0.00
157G /path/to/bbbbbbbbb/ 0.00
253M /path/to/ccccccccccccccc/ 0.00
61M /path/to/dddddddd/ 0.00
16K /path/to/eeeee/ 0.00
8.0K /path/to/fffffffff/ 0.00
이 cat the.file|column -t
명령은 다음 출력을 생성합니다.
510G /path/to/aaaaaaaaaaaaa/ 0.00
157G /path/to/bbbbbbbbb/ 0.00
253M /path/to/ccccccccccccccc/ 0.00
61M /path/to/dddddddd/ 0.00
16K /path/to/eeeee/ 0.00
8.0K /path/to/fffffffff/ 0.00