Bagaimana cara menggunakan wildcard dengan bakat?

22

Apakah ada cara untuk menggunakan wildcard dengan aptitudeseperti di bawah ini:

sudo apt-get remove openoffice*.*
raulricardo21
sumber

Jawaban:

16

http://ubuntuforums.org/showthread.php?t=228309 menunjukkan bahwa itu mungkin melalui konstruksi seperti ~n<package name>dan ini dikonfirmasi oleh manual pengguna http://algebraicthunk.net/~dburrows/projects/aptitude/doc/en/ ch02s03s02.html .

~nin ~n<package name>adalah pola pencarian untuk nama paket yang cocok. Dimungkinkan juga untuk mencocokkan bidang lain selain nama paket, lihat http://algebraicthunk.net/~dburrows/projects/aptitude/doc/en/ch02s03s05.html#tableSearchTermQuickGuide .

Ini sebuah contoh. Katakanlah Anda ingin aptitudemenunjukkan setiap paket dengan "pergeseran merah" dalam namanya, lalu Anda terbitkan

aptitude show ~nredshift

Itu harus dapat dikombinasikan dengan opsi aptitude lainnya, seperti menginstal dan menghapus juga, misalnya untuk menghapus semua paket yang diinstal dengan openoffice atas nama mereka yang Anda terbitkan

sudo aptitude -P remove ~nopenoffice

Pastikan untuk menggunakan -Popsi ketika menggunakan pola pencarian untuk memaksa aptitude untuk menampilkan prompt sebelum mengunduh, menginstal atau menghapus paket (pola pencarian mungkin memiliki banyak kecocokan dan Anda akan ingin diminta sebelum melakukan suatu tindakan).

Satu hal yang saya belum berhasil adalah bagaimana mendapatkan fungsionalitas yang tepat dari wildcard, misalnya yang openoffice*cocok dengan setiap string yang dimulai dengan "openoffice" ( ~nopenofficecocok dengan string apa pun yang berisi "openoffice"). Mungkin solusinya mungkin, misalnya untuk mencari paket yang diinstal dengan string tertentu dalam nama mereka dan kemudian memberi makan bakat dengan nama mereka.

NN
sumber
-P dimaksudkan untuk tidak pernah mengikuti tautan simbolik, tidak diminta
rancho
Juga menggunakan ~ nredshift tidak akan mencari pergeseran merah, tetapi ~ nredshift. Juga ~ n tidak ada argumen secara default
rancho
Jawaban yang diberikan oleh NorticUs pada awalnya benar. Sintaks yang benar di sini adalah ~ n ^ redshift
rancho
5

Anda cukup menuliskannya dalam tanda kutip:

sudo apt-get remove "openoffice*"

Kalau tidak, shell akan mencoba mencocokkan ini dengan file-file direktori kerja Anda saat ini.

aquaherd
sumber
5
Pertanyaannya adalah tentang aptitudedan tidak apt-get. Solusi ini tidak bekerja dengan bakat.
NN
@ MichałŠrajer: tidak ada perluasan pathname yang terjadi dalam tanda kutip, baik tunggal maupun ganda
enzotib
@enzotib: Kesalahan saya. Terima kasih telah menunjukkannya. Komentar yang dihapus.
Michał Šrajer
ok, saya tidak mengerti ... jadi bisa dilakukan dengan aptitude atau bekerja dengan cara itu ... sudo aptitude menghapus "openoffice *"
raulricardo21
@ raulricardo21 Hal serupa dapat dilakukan dengan bakat, lihat jawaban saya .
NN
4

Untuk mencocokkan string yang dimulai dengan nama paket, tambahkan a ^di depannya.
misalnya:aptitude search ~n^openoffice

Euan Thoms
sumber
Saya hanya mengerjakan bagian pencarian, Anda juga harus menyebutkan cara mendapatkan hasil pencarian
rancho