GNU/Linux >> Belajar Linux >  >> Linux

Hapus karakter tertentu menggunakan awk atau sed

Gunakan substitusi sed:sed 's/"//g'

s/X/Y/ mengganti X dengan Y.

g berarti semua kemunculan harus diganti, bukan hanya yang pertama.


Menggunakan hanya awk yang bisa Anda lakukan (saya juga mempersingkat beberapa perpipaan Anda):

strings -a libAddressDoctor5.so | awk '/EngineVersion/ { if(NR==2) { gsub("\"",""); print $2 } }'

Saya tidak dapat memverifikasinya untuk Anda karena saya tidak tahu persis input Anda, tetapi berikut ini berfungsi:

echo "Blah EngineVersion=\"123\"" | awk '/EngineVersion/ { gsub("\"",""); print $2 }'

Lihat juga pertanyaan ini tentang menghapus tanda kutip tunggal.


tr bisa lebih ringkas untuk menghapus karakter dari sed atau awk , terutama saat Anda ingin menghapus beberapa karakter berbeda dari sebuah string.

Menghapus tanda kutip ganda:

echo '"Hi"' | tr -d \"
# Prints Hi without quotes

Menghapus berbagai jenis tanda kurung:

echo '[{Hi}]' | tr -d {}[]
# Prints Hi without brackets

-d singkatan dari "hapus".


Linux
  1. Pencocokan Pola Multiline Menggunakan Sed, Awk Atau Grep?

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

  3. Bungkus Karakter Pertama Dari Sebuah String Menggunakan Sed?

  1. Huruf Besar Kata Pertama Menggunakan SED

  2. Menggunakan sed untuk menghapus blok teks

  3. Cara menghapus karakter non-ascii menggunakan sed

  1. Hapus baris kosong menggunakan sed

  2. Cara menghapus \r karakter dengan sed

  3. Menggunakan grep vs awk