Menggunakan grep + sed
Ini akan mem-parsing isi dari 2 string:
$ grep -o '".*"' somefile | sed 's/"//g'
arch
arch2
Di atas mencari string yang cocok dengan pola ".*". Itu akan cocok dengan apa pun yang terjadi dalam tanda kutip ganda. Jadi grepakan mengembalikan jenis nilai ini:
"arch"
"arch2"
Pipa untuk sedakan menghapus setiap tanda kutip ganda dari string ini memberikan Anda string yang Anda cari. Notasi sed 's/"//g'ini menginstruksikan seduntuk melakukan pencarian dan mengganti semua kemunculan tanda kutip ganda, menggantikannya dengan apa pun s/"//g,. Perintahnya s/find/replace/gadalah apa yang terjadi di sana, dan trailing gto search menyuruhnya melakukannya secara global pada seluruh string yang diberikan.
Hanya menggunakan sed
Anda juga dapat menggunakan seduntuk memangkas kuotasi awal, menyimpan apa yang ada di antara keduanya, dan memangkas kuotasi yang tersisa + semua yang ada setelahnya:
$ sed 's/^"\(.*\)".*/\1/' a
arch
arch2
Metode lainnya
$ grep -o '".*"' somefile | tr -d '"'
arch
arch2
Perintah trdapat digunakan untuk menghapus karakter. Dalam hal ini menghapus tanda kutip ganda.
$ grep -oP '(?<=").*(?=")' somefile
arch
arch2
Dengan menggunakan grepfitur PCRE, Anda dapat mencari substring yang dimulai dengan penawaran ganda atau diakhiri dengan penawaran ganda dan melaporkan hanya substring tersebut.
tr -d \"adalah cara lain untuk menghapus tanda kutip. (trbiasanya menerjemahkan satu set karakter ke yang lain;-d