GNU/Linux >> Belajar Linux >  >> Linux

Mengganti Kata Atau Angka Dalam Kalimat Yang Kurang Dari 8 Menggunakan Awk Atau Sed?

Saya punya contoh di bawah ini di mana saya perlu mengganti nilai kolom 9 jika kurang dari 8 yang lain keluar atau abaikan menggunakan fungsi sed atau awk:

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

Jika saya menggunakan fungsi awk di bawah ini, itu hanya mencetak nilai yang saya butuhkan di kolom 9, tetapi saya masih ingin mempertahankan struktur kalimat.

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

KELUARAN:

8

Yang saya inginkan adalah yang di bawah ini:

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

Jawaban yang Diterima:

Tanpa mengetahui awk Saya sarankan untuk mengubah parameter dan mencetak semuanya:

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

Linux
  1. du yang menghitung jumlah file/direktori daripada ukuran

  2. Menggunakan grep vs awk

  3. Bagaimana cara mengubah file di tempat menggunakan awk? (seperti halnya sed -i)

  1. Menggunakan sed untuk menemukan dan mengganti file teks di Linux

  2. Periksa apakah ukuran file lebih besar dari 1MB menggunakan kondisi IF

  3. ganti baris dalam satu file dengan baris lain dengan nomor baris

  1. Menggunakan perintah Sed,ex &Perl untuk menemukan dan mengganti teks di Linux

  2. Menggunakan Sed untuk Mencari &mengganti garis di antara rentang pola

  3. Pencocokan Pola Multiline Menggunakan Sed, Awk Atau Grep?