Не могли бы вы попробовать следующее.
awk '{ if( $1 ~ /word1/) {$5 = "0.0697"}
else if ( $1 ~ /word2/) {$5 = "0.0645"}
else if ( $1 ~ /word3/) {$5 = "0.0655"}
else if ( $1 ~ /word4/) {$5 = "0.0677"}
else if ( $1 ~ /word5/) {$5 = "0.0678"}
}
{
print $1, $2, $3, $4, $5
}
' Input_file
Или вы можете поставить 1
вместо print $1, $2, $3, $4, $5
тоже в коде, как показано ниже:
awk '{ if( $1 ~ /word1/) {$5 = "0.0697"}
else if ( $1 ~ /word2/) {$5 = "0.0645"}
else if ( $1 ~ /word3/) {$5 = "0.0655"}
else if ( $1 ~ /word4/) {$5 = "0.0677"}
else if ( $1 ~ /word5/) {$5 = "0.0678"}
}
1
' Input_file
Проблемы с подходом OP:
{$5 == "0.0697")
:
1 - Мы не должны использовать ==
, который используется для проверки состояния, вместо этого используйте =
.
2- Используйте }
, чтобы закрыть его при назначении значений.