![awk/sed에서 일치하는 열 이름을 기반으로 열 값을 인쇄합니다. [중복]](https://linux55.com/image/76948/awk%2Fsed%EC%97%90%EC%84%9C%20%EC%9D%BC%EC%B9%98%ED%95%98%EB%8A%94%20%EC%97%B4%20%EC%9D%B4%EB%A6%84%EC%9D%84%20%EA%B8%B0%EB%B0%98%EC%9C%BC%EB%A1%9C%20%EC%97%B4%20%EA%B0%92%EC%9D%84%20%EC%9D%B8%EC%87%84%ED%95%A9%EB%8B%88%EB%8B%A4.%20%5B%EC%A4%91%EB%B3%B5%5D.png)
쉘 스크립트에서 일부 명령을 실행하면 다음과 같은 출력이 표시됩니다.
Name English Maths science Social studies
------ -------- -------- -------- ---------------
James 20 25 30 40
(many values)
(or)
Roll Num Name English Maths science Social studies
--------- ---- -------- ------- -------- ---------------
1 James 20 25 30 40
(Many values)
열 헤더를 기준으로 인쇄된 값을 일치시키고 싶습니다.
Example:
cmd(matching Maths) test.txt
o/p:25
awk
몇 가지 명령을 시도했지만 sed
올바른 출력을 얻지 못했습니다.
누구든지 이것을 얻는 방법을 도와 줄 수 있습니까?
답변1
awk -v subj="Maths" '{
for(n=1;n<=NF;n++){
if ($n==subj){
subp=n;nrr=NR+2
}};
if(NR==nrr){
print $subp
}}' test.txt
여기서는 subject가 Maths
필드 위치 subp
이고 nrr
( NR +2
값이 있는 subj
Maths
) 할당되는 경우입니다.