在我的 shell 脚本中执行一些命令后,我得到以下输出:
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
这里,如果主题是Maths
字段位置subp
并且nrr
(NR +2
其中谎言的值subj
Maths
)被分配。