シェルスクリプトでいくつかのコマンドを実行すると、次の出力が表示されます。
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
)割り当てられている場合です。