파일의 매트릭스 부분을 인쇄하는 방법

파일의 매트릭스 부분을 인쇄하는 방법

문자열과 부동 소수점이 포함된 파일이 있습니다. 이 파일을 로드한 다음 파일의 행렬 부분을 인쇄하여 행렬 요소에 액세스하고 싶습니다.

파일.텍스트

laimfnllvbms
ksdvkdv=ksmgfgmf
kfdjdj=4o53024

0 10 

   C        -5.079679       -0.614855        0.628813
   O        -5.090496       -1.535841       -0.185383
   N         -4.068243       -0.015776        1.175251
   H        -4.152798        0.774414        1.777298
   C        -2.706356       -0.272545        0.750101
   H        -2.712997       -0.826000       -0.177284
   C        -2.003241        1.167450        0.660391
   H       -1.795397        1.550152        1.682476
   H       -2.809862        1.800846        0.233202
   C        -0.756939        1.208105       -0.169144

산출

            -5.079679       -0.614855        0.628813
            -5.090496       -1.535841       -0.185383
             -4.068243       -0.015776        1.175251
            -4.152798        0.774414        1.777298
            -2.706356       -0.272545        0.750101
            -2.712997       -0.826000       -0.177284
            -2.003241        1.167450        0.660391
           -1.795397        1.550152        1.682476
           -2.809862        1.800846        0.233202
            -0.756939        1.208105       -0.16914

행렬 요소[1,1] = -5.079679

행렬 요소[5,1] = -2.706356

답변1

데이터는 항상 위에서 제공한 방식과 같다고 가정합니다.

awk 'NF == 4 {$1="";print}' matrix.txt 

그러면 4개의 데이터 열이 포함된 모든 행이 인쇄되고 첫 번째 열은 지워집니다.

답변2

문법에 더 많은 검사를 추가하려면 다음을 시도해 보세요. 이는 두 번째 필드가 항상 음수인 경우에만 작동합니다.

awk -vOFS="\t" 'NF==4 && $2 ~ "^-[0-9]" {$1="";printf("%s\n", $0)}' matrix.txt
  • -vOFS(TAB을 출력 필드 구분 기호로 사용)
  • 필드 수가 4이고 두 번째 필드가 정규식과 일치하는 경우입니다. 그런 다음 첫 번째 필드를 비워두고 나머지 필드를 인쇄합니다.
  • 다음과 같은 숫자가 있는 경우

    C 14.756939 1.208105 -0.169144

$2 ~ "^-?[0-9]"그런 다음 wich를 사용하여 양수 값을 확인할 수 있습니다.

관련 정보