GNU/Linux >> Linux Esercitazione >  >> Linux

Sostituire una parola o un numero in una frase inferiore a 8 usando Awk o Sed?

Di seguito ho un esempio in cui devo sostituire il valore della colonna 9 se è inferiore a 8 altrimenti uscire o ignorare usando la funzione sed o awk:

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

Se utilizzo la seguente funzione awk, stampa solo il valore di cui ho bisogno nella colonna 9, ma voglio comunque mantenere la struttura della frase.

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

USCITA:

8

Quello che voglio è il seguente:

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

Risposta accettata:

Senza conoscere alcun awk Suggerirei di modificare il parametro e stampare tutto:

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

Linux
  1. Utilizzo di sed per trovare e sostituire file di testo in Linux

  2. Utilizzo di Sed per cercare e sostituire una linea tra intervalli di pattern

  3. Corrispondenza di pattern multilinea utilizzando Sed, Awk o Grep?

  4. Utilizzo di grep e sed per trovare e sostituire una stringa

  5. Rimuovi un carattere specifico usando awk o sed

Come eliminare le righe vuote nei file utilizzando Grep, Sed e Awk

Java utilizza molta più memoria rispetto alla dimensione dell'heap (o dimensiona correttamente il limite di memoria Docker)

du che conta il numero di file/directory piuttosto che la dimensione

Come modificare un file sul posto usando awk? (come con sed -i)

Controlla se la dimensione del file è superiore a 1 MB utilizzando la condizione IF

sostituire le righe in un file con le righe in un altro per numero di riga