locate
バイナリを何度も使用して、1TBのHDDで何かを検索しました。
ほとんどの場合、私は多くの結果を得て、私が探しているものを正確に取得するために各行を読む必要があります。
locate
が(grep --colorのように)一致したパターンを色で出力できると便利です。
locate
コマンドでこれを行う方法はありますか?
最も簡単な方法は、locate
とgrep
を組み合わせた単純なシェルスクリプトを作成することです。
$ PATHのどこかにファイルを作成します(例:/usr/local/bin/clocate
)。
#!/bin/sh
locate --regex "$1" | grep --color=auto "$1"
次に、それを実行可能にします。
chmod +x /usr/local/bin/clocate
locate
のように使用します。スクリプトは1つのパターンのみを受け入れます。
別の方法は、シェル関数を使用することです。シェルとしてbash
を使用している場合は、$HOME/.bashrc
に次の行を追加できます。
clocate() { locate --regex "$1" | grep --color=auto "$1"; }
新しいコマンドを実行する前に、bashを再実行するか、.bashrc
を再ソースする必要があります。
locate
の--regex
オプションに注意してください。任意の数の文字に一致させるには、.*
の代わりに*
を記述する必要があります。
これは2つのパターンの場合コマンドラインの最初のパターン、招待されたときの2番目のパターン。
#!/bin/sh
echo "Type the second argument."
read constraint
locate -i "$1" | grep -i $(echo "$constraint") |grep -i --color=auto -e $(echo "$1") -e $(echo "$constraint")
exit