0
NR>NRMIN{
if($3 == "Leu") {
if($4 == "CD1" || $4 == "HD11" || $4 == "HD12" || $4 == "HD13") {
next;
}
}
elseif($3 == "Val") {
if($4 == "CD1" || $4 == "HD11" || $4 == "HD12" || $4 == "HD13") {
next;
}
}
else {
print;
}
}
私はスペース区切りのファイルの行を選択的に印刷するつもりです。 何elseif
がないときgawk -f FILE_Modifier.awk NRMIN = 90 FILE > NEWFILE
Awk If-Elseif-Ifブロック
エラーメッセージ
gawk: FILE_Modifier.awk:7: elseif($3 == "Val") {
gawk: FILE_Modifier.awk:7: ^syntax error
gawk: FILE_Modifier.awk:12: else {
gawk: FILE_Modifier.awk:12: ^syntax error
「エラーが発生しました」と言っているのではなく、質問にエラーメッセージを含めておけば非常に便利です。本当に**変数代入 'NRMIN = 90'の途中に空白を残しましたか?あなたは本当に** elseとifの間にスペースを入れていませんでしたか? –
2つの単語を使用します: 'else if'。 awkは 'elif'や' elsif'やそのようなバリエーションをサポートしていません。 'if($ 3 ==" Leu ")'のブロックは何も印刷しないことに注意してください。また、 'else if($ 3 ==" Val ")ブロックと同様に構文を修正してください。それはちょうどあなたがあなたがMCVE([MCVE])に向かって働いていたか、それとも監督かもしれないので、それをSOに提示するためのコードを最小限に抑えたからかもしれません。 –
@EdMorton問題を修正しました。ありがとう。 – Frequency