GNU/Linux >> Tutoriels Linux >  >> Linux

Remplacer un mot ou un nombre dans une phrase inférieure à 8 en utilisant Awk ou Sed ?

J'ai un exemple ci-dessous où je dois remplacer la valeur de la colonne 9 si elle est inférieure à 8 sinon quitter ou ignorer en utilisant la fonction sed ou awk :

) in datadbs extent size 16 next size 4 lock mode row;

Si j'utilise la fonction awk ci-dessous, elle n'imprime que la valeur dont j'ai besoin dans la colonne 9, mais je souhaite toujours conserver la structure de la phrase.

echo ") in datadbs extent size 16 next size 4 lock mode row;" | 
 awk '{if ($9 < 8 ) print 8;}'

SORTIE :

8

Ce que je veux, c'est ce qui suit :

) in datadbs extent size 16 next size 8 lock mode row;

Réponse acceptée :

Sans connaître aucun awk Je suggérerais de changer le paramètre et de tout imprimer :

echo ") in datadbs extent size 16 next size 4 lock mode row;" | 
  awk '{if ($9 < 8 ) $9 = 8; print;}'

Linux
  1. Utilisation de sed pour rechercher et remplacer des fichiers texte sous Linux

  2. Utilisation des commandes Sed, ex et perl pour rechercher et remplacer un texte sous Linux

  3. Utilisation de Sed pour rechercher et remplacer une ligne entre des plages de motifs

  4. Correspondance de modèle multiligne à l'aide de Sed, Awk ou Grep ?

  5. Utiliser grep et sed pour rechercher et remplacer une chaîne

Comment supprimer des lignes vides dans des fichiers à l'aide de Grep, Sed et Awk

Java utilisant beaucoup plus de mémoire que la taille du tas (ou taille correctement la limite de mémoire Docker)

Comment modifier un fichier sur place en utilisant awk ? (comme avec sed -i)

Vérifiez si la taille du fichier est supérieure à 1 Mo en utilisant la condition IF

Utilisation de sed pour remplacer entre un modèle spécifique

remplacer les lignes d'un fichier par les lignes d'un autre par numéro de ligne