locate
私のシステムにライブラリを構築する必要がありますが、その名前は何度も検索されると予想されます。私は最初の発生を維持したいと思います。
これまで、文字列を改行に分割するいくつかの方法を試しましたが、locate
出力には何も機能しないようです。
find
図書館がどこにあるのか、あらかじめわからないので利用していません。
この問題を処理する他の(より良い)方法も歓迎します。
ベストアンサー1
出力をフィルタリングする方法はいくつかありますlocate
。
方法 #1 - 明示的でなければなりません。
特定のバージョンのライブラリを探している場合は、直接尋ねてくださいlocate
。
$ locate libstdc++-3-libc6.2-2-2.10.0.so
/usr/lib/libstdc++-3-libc6.2-2-2.10.0.so
方法 #2 - grep
glibc .soライブラリを探している場合は、grep
.soでこれらの結果のみを見つけるために使用してくださいlocate
。
$ locate libstdc++ | grep ".so$"
/usr/lib/libstdc++-3-libc6.2-2-2.10.0.so
/usr/lib/gcc/x86_64-redhat-linux/4.4.4/libstdc++.so
/usr/lib/gcc/x86_64-redhat-linux/4.4.4/32/libstdc++.so
方法#3 - 結果の最初の10行だけを返す
最初の結果を見つけることに興味がある場合は、最初のhead
結果を返すだけを使用してください。head
スイッチを使用して他の数の結果を直接返すことができます-#
(短いが標準ではない結果-n #
)。
はい
$ locate glibc | head -8
/usr/lib64/glib-2.0/include/glibconfig.h
/usr/sbin/glibc_post_upgrade.i686
/usr/sbin/glibc_post_upgrade.x86_64
/usr/share/aclocal/glibc2.m4
/usr/share/aclocal/glibc21.m4
/usr/share/doc/glibc-2.12
/usr/share/doc/glibc-common-2.12
/usr/share/doc/glibc-2.12/BUGS
(8行を返します。これはファイルパスと必ずしも同じではなく、複数行で構成できます。改行文字はファイル名のすべての文字と同じであるため)。