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 grep
akan mengembalikan jenis nilai ini:
"arch"
"arch2"
Pipa untuk sed
akan menghapus setiap tanda kutip ganda dari string ini memberikan Anda string yang Anda cari. Notasi sed 's/"//g'
ini menginstruksikan sed
untuk melakukan pencarian dan mengganti semua kemunculan tanda kutip ganda, menggantikannya dengan apa pun s/"//g
,. Perintahnya s/find/replace/g
adalah apa yang terjadi di sana, dan trailing g
to search menyuruhnya melakukannya secara global pada seluruh string yang diberikan.
Hanya menggunakan sed
Anda juga dapat menggunakan sed
untuk 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 tr
dapat digunakan untuk menghapus karakter. Dalam hal ini menghapus tanda kutip ganda.
$ grep -oP '(?<=").*(?=")' somefile
arch
arch2
Dengan menggunakan grep
fitur 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. (tr
biasanya menerjemahkan satu set karakter ke yang lain;-d