Saya mengalami masalah dengan sed tidak mengembalikan apa yang saya harapkan ketika menggunakan pola regex untuk membersihkan beberapa output dari permintaan mysql.
mysql -uroot -p -e 'SELECT `path` FROM db.media_gallery' | sed -n -r 's/[^\/]+([^\s]+).*/\1/p'
Kueri mengembalikan banyak baris seperti ini:
| /media/M/W/lmt_MWS04_8.png |
| /media/M/W/lmt_MWS02_11.png |
Ketika saya mem-pipe ini melalui perintah sed yang tercantum di atas, ia mengembalikan ini:
//M/W/lmt_MWS04_8.png
//M/W/lmt_MWS02_11.png
Kemana perginya "media"? Mengapa itu menghapus bagian dari string saya secara acak?
Adakah yang tahu cara memperbaiki regex saya?
[^\/]+
bagian dari regex Anda, yang tidak termasuk dalam output Anda. Kami tidak dapat memperbaiki regex Anda kecuali kami tahu apa yang Anda coba lakukan. Apakah Anda mencoba untuk memotong spasi?