Я пытаюсь воспроизвести команду awk, используя другой синтаксис. У меня есть файл (test.txt
), который выглядит так:
>NAME_123_CONSENSUS
GACTATACA
ATACTAGA
>NAME2_48_TEST
ATAGCGA
и я надеюсь заменить все вхождения "A" на "1", используя другой синтаксис awk. Я могу решить это, используя следующую строку:
awk '!/_/{gsub("A", "1"); 1' test.txt
Однако я не могу получить тот же результат, используя цикл for
,
awk '{for(j=1; j<=NF; j++) if ($j ~ "_") print; else print gsub("A","1")}' test.txt
, не используя следующий ввод
awk '{ if ($0 ~ "_") print $0; else print gsub("A", "1"); }' test.txt
Обе эти последние команды дают следующий вывод. Почему они дают разные выходные данные и чего мне не хватает, чтобы обе последние две команды дали желаемый результат?
>NAME_123_CONSENSUS
4
4
5
>NAME2_48_TEST
3