출력 조작을 위한 Perl 스크립트(명령줄에서 생성됨)

출력 조작을 위한 Perl 스크립트(명령줄에서 생성됨)

현재 상황 - 다음 줄을 실행합니다.

Xxx 명령 | mail -s '테스트'[이메일 보호됨]

그러면 내 이메일에 다음과 같은 결과가 표시됩니다.

이름 파일(n) 공간 컴퓨팅Adam
12345 12345 공간/파일(n)
Becky 45689 8987
Maryanne 5598 7895

계산을 좀 해야 하니까추가 열이 필요합니다.
매우 지저분합니다. 그래서 나는 Perl 스크립트의 열을 기준으로 정렬하기를 원합니다. 또한 다른 열의 값을 기반으로 계산을 수행하려면 추가 열을 추가하세요.

나의 궁극적인 목표는 Linux에서 Perl 스크립트를 실행하는 것입니다. 그러면 명령에서 출력을 "받아" 형식을 멋지게 지정할 수 있습니다. (데이터는 매번 다르기 때문에 데이터를 Perl에 복사해서 붙여넣고 하나씩 포맷하는 등 수동으로 데이터 출력을 가져온 후 매번 편집하는 대신 한 번만 수행하고 싶습니다)

모든 것이 순조롭게 진행된다면 Linux에서 Perl 스크립트를 실행할 때입니다. (format 명령의 출력), 멋진 형식의 출력이 포함된 이메일을 받게 됩니다.
(**죄송합니다. 열 헤더에 맞게 스타일을 정렬하는 방법을 모르겠습니다.)

이름 파일(n) 공간 컴퓨팅Adam
12345 12345 공간/파일(n)
Becky 45689 8987
Maryanne 5598 7895

그래서 내 주요 질문은: 출력을 조작할 수 있는 Perl 스크립트를 어떻게 작성할 수 있습니까? 먼저 출력을 Linux의 텍스트 파일에 넣어야 합니까?

왜냐하면 메일로 보내기 전에 출력 형식을 지정하거나 출력에 열을 추가할 수 있는 Perl 스크립트를 작성하는 방법을 모르기 때문입니다.

어떤 조언이라도 대단히 감사하겠습니다. 감사해요.

답변1

이 awk 명령을 시도해 볼 수 있나요?

$ xxxcommand | awk 'NR==1{printf("%-10s%-10s%-10s%-10s\n",$1,$2,$3,"calculation")}NR>1{printf("%-10s%-10s%-10s%-10s\n",$1,$2,$3,$2/$3)}' | mail_command
Name      Files(n)  Space     calculation
Adam      12345     12345     1
Becky     45689     8987      5.0839
Maryanne  5598      7895      0.709056

답변2

Xxxcommand와 명령 사이에 mail -s...다음을 수행하십시오 .

Xxxcommand |
sed -e '
   1i\
.TS\
tab( );\
c c c c\
l n n n.
   $a\
.TE
' | tbl - |  nroff -Tascii -ms | grep \. |
mail -s 'test on' [email protected]

참고: 가운데 정렬 열, 왼쪽 정렬 열 및 숫자 정렬 열을 c나타냅니다 . 원하는 열 수에 맞게 숫자를 수정하십시오.ln

관련 정보