ターゲティング出力で最初の一致のみを維持する

ターゲティング出力で最初の一致のみを維持する

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行を返します。これはファイルパスと必ずしも同じではなく、複数行で構成できます。改行文字はファイル名のすべての文字と同じであるため)。

おすすめ記事