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;
}
}
Я намерен выборочно печатать строки файла с разделителями-пробелами. Пожалуйста, дайте мне знать, почему выше код дает ошибку при gawk -f FILE_Modifier.awk NRMIN = 90 FILE > NEWFILE
Awk If-Elseif-If Block
Сообщение об ошибке
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'? –
Используйте два слова: 'else if'. Awk не поддерживает 'elif' или' elsif' или такие варианты. Обратите внимание, что блок для 'if ($ 3 ==" Leu ")' никогда не печатает ничего и аналогично блоку 'else if ($ 3 ==" Val ") после того, как вы исправите его синтаксис. Это может быть просто из-за того, что вы минимизировали свой код для представления его на SO - вы работали над MCVE ([MCVE]), или это может быть недосмотр. –
@EdMorton Исправлена ошибка. Благодарю. – Frequency