Le message d'erreur vient du fait que tu appelles awk pour traiter son entrée standard (qui est un flux et pas un fichier) et cela n'a pas de sens de le traiter "en place."
À part ça, quelques remarques en vrac:
Il vaut mieux utiliser (...)` que les backquotes, comme(ls *,txt)`.
Dans ce cas particulier, le shell le fait déjà, donc un simple for i in *.txt fait très bien l'affaire.
La plupart du temps cat $i ne sert à rien, il suffit de rediriger l'entrée standard: awk ... < $i.
Dans ce cas particulier, tu peux directement soumettre ton fichier à awk, donc cat $i | awk ... devient awk ... $i et ton option inplace a du sens puisque sous cette forme tu traites un fichier!
# Quelques propositions
Posté par Michaël (site web personnel) . En réponse au message Remplacer une valeur dans une colonne sous condition. Évalué à 3.
Le message d'erreur vient du fait que tu appelles awk pour traiter son entrée standard (qui est un flux et pas un fichier) et cela n'a pas de sens de le traiter "en place."
À part ça, quelques remarques en vrac:
for i in *.txtfait très bien l'affaire.cat $ine sert à rien, il suffit de rediriger l'entrée standard:awk ... < $i.cat $i | awk ...devientawk ... $iet ton optioninplacea du sens puisque sous cette forme tu traites un fichier!