web-dev-qa-db-ja.com

色で見つける

locateバイナリを何度も使用して、1TBのHDDで何かを検索しました。

ほとんどの場合、私は多くの結果を得て、私が探しているものを正確に取得するために各行を読む必要があります。

locateが(grep --colorのように)一致したパターンを色で出力できると便利です。

locateコマンドでこれを行う方法はありますか?

2
SHW

最も簡単な方法は、locategrepを組み合わせた単純なシェルスクリプトを作成することです。

$ 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
jofel

これは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
0
Nolby