[119304] Согласно [119743] этой ссылке[119744]:
"[...] это ограничение на то, как работает Х. Клиент, или "окно", имеет конкретную позицию x/y и экран - это ..."
Так что, к сожалению, это, по-видимому, невозможно...[119309]
find /lib* ! -type d -name \*lib\* | cut -d. -f1 | sort -u
Таким образом, приведенная выше команда должна работать для имен файлов, не содержащих новых строк, в противном случае вам нужно будет сделать несколько более явных тестов. Как написано, эта команда находит файл с именем, которое соответствует \*lib\*
glob и делает это на любой глубине - она будет рекурсивно искать все дочерние каталоги базовых деревьев, возвращаемых /lib*/
glob.
find
просто печатает свой вывод - вот что он делает. Однако, когда вы -exec
другую команду, она передает имена файлов в качестве аргументов этой команды, и поэтому вы не grep
файл names, а файл contents в вашей команде.
Итак, здесь мы разбираем вывод find
в конвейере. cut
будет печатать до первого периода, который он найдет в любой из своих входных строк, а sort
возьмет эти результаты и сожмет любые повторы до одной -у
ничной записи.
Похоже, вам нужны только имена файлов без каких-либо расширений. Если вы ищете единственную трубу, чтобы выбить это, grep
не ваш мужчина. Попробуйте sed
:
$ find /lib /lib64 -type f -name '*lib*' | sed 's@/.*/@@;s@\..*$@@'
Вы можете передать по конвейеру sort -u
, чтобы удалить любые дубликаты.Приведенная ниже команда будет более точной, если использовать awk
и cut
(или снова awk
- либо / или - cut
короче / prettier, IMHO):
$ find /lib /lib64 -type f -name '*lib*' | awk -F '/' '{print $NF}' | cut -d. -f1 | sort -u
Возвращает:
20-libgphoto2-6
40-libsane
klibc-P2s_k-gf23VtrGgO2_4pGkQgwMY
libBrokenLocale-2
libSegFault
libacl
libaio
libanl-2
libatasmart
libattr
libaudit
libblkid
libbsd
libbz2
libc-2
libcap
libcgmanager
libcidn-2
libcom_err
libcrypt-2 { {1}} libcrypto
libdbus-1
libdevmapper
libdl-2
libe2p
libexpat
libext2fs
. libfuse
libgcc_s
libgcrypt
libglib-2
libgpg-error
libhistory
libjson-c
libkeyutils { {1}} libkmod
liblzma
liblzo2
libm-2
libmemusage
libmount
libncurses
libncursesw { {1}} libnewt
libnih
libnih-dbus
libnsl-2
libnss_compat-2
libnss_dns-2
libnss_files- 2
libnss_hesiod-2
libnss_nis-2
libnss_nisplus-2 {{1} } libntfs-3g
libpam
libpam_misc
libpamc
libparted
libpci
libpcprofile
libpcre {{1} } libpcsclite
libply
libply-boot-client
libply-splash-core
libply-splash-graphics
libpng12
libpopt
libprocps
libpthread-2
libreadline
libresolv-2
librt-2
libselinux
libsepol {{ 1}} libslang
libss
libssl
libsystemd-daemon
libsystemd-login
libthread_db-1
libtinfo {{1}). } libudev
libulockmgr
libusb-0
libusb-1
libutil-2
libuuid
libwrap
libz
В противном случае вам не понадобится канал для вырезать
, чтобы удалить все расширения:
$ find /lib /lib64 -type f -name '*lib*' | awk -F '/' '{print $NF}' | sort -u
Возвращает:
20-libgphoto2-6.hwdb
40-libsane.rules
klibc-P2s_k-gf23VtrGgO2_4pGkQgwMY.so
libBrokenLocale-2.19.so
libSegFault.so
libacl.so.1.1.0
libaio.so .1.0.1
libanl-2.19.so
libatasmart.so.4.0.5
libattr.so.1.1.0
libaudit.so.1.0.0
libblkid.so.1.1.0
libbsd.so.0.6.0
libbz2.so.1.0.4
libc-2.19.so {{1} } libcap. so.2.24
libcgmanager.so.00
libcidn-2.19.so
libcom_err.so.2.1
libcrypt-2.19.so
libcrypto.so.1.0.0
libdbus- 1.so.3.7.6
libdevmapper.so.1.02.1
libdl-2.19.so
libe2p.so.2.3
libexpat.so.1.6. 0
libext2fs.so.2.4
libfuse.so.2.9.2
libgcc_s.so.1
libgcrypt.so.11.8.2
libglib-2.0.so.0.4000.0
libgpg-error.so.0.10.0
libhistory.so.6.3
libjson-c.so.2.0.0 {{1 }} libkeyutils.so.1.4
libkmod.so.2.2.5
liblzma.so.5.0.0
liblzo2.so.2.0.0
libm- 2.19.so
libmemusage.so
libmount.so.1.1.0
libncurses.so.5.9
libncursesw.so.5.9
libnewt. so.0.52.15
libnih-dbus.so.1.0.0
libnih.so.1.0.0
libnsl-2.19.so
libnss_compat-2.19. поэтому
libnss_dns-2.19.so
libnss_files-2.19.so
libnss_hesiod-2.19.so
libnss_nis-2.19.so
libnss_nisplus-2.19. поэтому
libntfs-3g.so.841.0.0
libpam.so.0.83.1
libpam_misc.so.0.82.0
libpamc.so.0.82. 1
libparted.so.0.0.1
libpci.so.3.2.1
libpcprofile.so
libpcre.so.3.13.1
libpcsclit e.so.1.0.0
libply-boot-client.so.2.1.0
libply-splash-core.so.2.1.0
libply-splash-graphics. so.2.1.0
libply.so.2.1.0
libpng12.so.0.50.0
libpopt.so.0.0.0
libprocps.so. 3.0.0
libpthread-2.19.so
libreadline.so.6.3
libresolv-2.19.so
librt-2.19.so
libselinux. so.1
libsepol.so.1
libslang.so.2.2.4
libss.so.2.0
libssl.so.1.0.0 {{1 }} libsystemd-daemon.so.0.0.10
libsystemd-login.so.0.7.1
libthread_db-1.0.so
libtinfo.so.5.9
libudev.so.1.3.5
libulockmgr.so.1.0.1
libusb-0.1.so.4.4.4
libusb-1.0.so.0.1.0 {{1 }} libutil-2.19.so
libuuid.so.1.3.0
libwrap.so.0.7.6
libz.so.1.2.8
find /lib /lib64 -name '*lib*' -type f | sed 's/\(.*\)\..*/\1/' | xargs -n 1 basename | sort -u
Найти все файлы в каталогах lib. Снимите все, что было после последнего периода. Передайте список в basename, чтобы удалить имя каталога. Сортируйте и удаляйте дубликаты.