문자열과 부동 소수점이 포함된 파일이 있습니다. 이 파일을 로드한 다음 파일의 행렬 부분을 인쇄하여 행렬 요소에 액세스하고 싶습니다.
파일.텍스트
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를 사용하여 양수 값을 확인할 수 있습니다.