J'ai un file avec des lignes similaires à celles ci-dessous:
0 0.1 0.0002 0 0.30
Je veux replace les lignes par un seul 0
à autre chose comme 0.0001
. Pour les lignes avec une décimale et les numbers après, je ne veux pas les modifier.
J'ai essayé les variantes ci-dessous de sed
, mais ça ne fait rien, ou ça change tous les zéros, même après les décimales:
sed 's/0/x/g' file sed 's/^0/x/g' file sed 's/0^/x/g' file sed 's/^0^/x/g' file sed 's/"0"/x/g' file sed 's/[0]/x/g' file
Il semble que sed
ne puisse pas gérer un seul caractère 0
. En outre, je n'ai pas la command de replace
sur mon système. Que puis-je faire d'autre?
Pour replace un seul 0 sur une ligne:
sed 's/^0$/x/'
^ correspond au début de la ligne
$ correspond à la fin d'une ligne
La command ci-dessus correspond donc au début d'une ligne, suivie de 0, suivie de la fin de la ligne.
Utiliser Awk:
awk '{gsub(/^0$/,0.0001)};1' file