Comment remplacer la ligne entière par sed?

Supposons que j’ai un fichier avec des lignes

  aaa = bbb 

Maintenant, je voudrais les remplacer par:

  aaa = xxx 

Je peux le faire comme suit:

  sed "s / aaa = bbb / aaa = xxx / g" 

Maintenant, j’ai un fichier avec quelques lignes comme suit:

  aaa = bbb
 aaa = ccc
 aaa = ddd
 aaa = [autre chose] 

Comment puis-je remplacer toutes ces lignes aaa=[something] par aaa=xxx utilisant sed ?

Essaye ça:

 sed "s/aaa=.*/aaa=xxx/g" 

Vous pouvez également utiliser la ligne de modification de sed pour accomplir ceci:

 sed -i "/aaa=/c\aaa=xxx" your_file_here 

Cela passera et trouvera toutes les lignes qui passent le test aaa= , ce qui signifie que la ligne contient les lettres aaa= . Ensuite, il remplace la ligne entière par aaa = xxx. Vous pouvez append un ^ au début du test pour vous assurer que vous obtenez uniquement les lignes qui commencent par aaa= mais cela dépend de vous.

Comme ça:

 sed 's/aaa=.*/aaa=xxx/' 

Si vous voulez garantir que aaa= est au début de la ligne, faites-le:

 sed 's/^aaa=.*/aaa=xxx/' 

Si vous souhaitez utiliser awk alors cela fonctionnerait aussi

 awk -F= '{$2="xxx";print}' OFS="\=" filename 
 sed -i.bak 's/\(aaa=\).*/\1"xxx"/g' your_file 

Cela pourrait fonctionner pour vous:

 cat <  aaa=bbb > aaa=ccc > aaa=ddd > aaa=[something else] ! aaa=bbb aaa=ccc aaa=ddd aaa=xxx