1
행렬의 첫 번째 열을 읽고이 첫 번째 열을 참조로 사용하여이 행의 열을 인쇄하고 싶습니다. 그리고 예 :AWK : 첫 번째 열을 참조로 사용하여 행렬을 인쇄하십시오.
mat.txt
2 10 6 12 3
4 11 1 22 6
5 15 3 18 9
참고로 첫 번째 열을 사용하여, 나는 열 2, 4, 5를 얻을, 또한 시작 부분에서 첫 번째 콜 럼의 값을 넣고 싶습니다.
2 10 12 3
4 11 22 6
5 15 18 9
나는 이것을 시도하지만 잘 작동하지 않습니다
awk 'FNR==NR{c++;cols[c]=$1;end}
{for(i=1;i<=c;i++) printf("%s%s",$(cols[i]+1),i<c ? OFS : "\n")}' mat.txt mat.txt
위대한 Jotne !! [FNR] 트릭을해라 !!! 그리고 {.}도 유용했습니다. 그냥 또 다른 질문입니다. 배열 (참조)을 머리글 (첫 번째 행)으로 인쇄 한 다음 행렬을 인쇄 할 수 있습니까? –
@ ManuelRamón 첫 번째 행에 참조 열을 인쇄하려는 경우 다음을 수행 할 수 있습니다. 'awk'FNR == NR {a [NR] = $ 1; 다음} FNR == 1 {for i in a printf " print ""s ", print ("[i]); print ""}''PS이 '
a[FNR]
'은 또한''% s ", a [i]a[++j]
' – Jotne+1 화려한! 여러분의 도움과 설명에 감사드립니다. @Jotne –