Ganti perintah grep dengan grep -n --colour?

17

Karena saya malas .... kapan saja saya ingin menggunakan grep, saya ingin grep -n --colour. Apakah ada cara untuk memetakan ini secara permanen?

Tree77
sumber
6
+1 untuk "Karena aku malas ...". Pernah mempertimbangkan karier sebagai pengembang? :)
dr Hannibal Lecter

Jawaban:

31

Dalam file $ HOME / .bashrc Anda, tambahkan:

export GREP_OPTIONS="-n --color"

Ini akan bekerja dengan egrepterlalu dan alias yang menggunakan grep.

Pembaruan : GREP_OPTIONS sudah usang dari grep 2.21 pada dan jika Anda menggunakan solusi ini, Anda akan melihat peringatan berikut:

grep: warning: GREP_OPTIONS is deprecated; please use an alias or script

Solusi terbaik adalah karena itu mengikuti nasihat maco dalam jawabannya . Atau beralih ke menggunakan ag , yang menampilkan warna secara default.

richq
sumber
menghormati.
myusuf3
4
Hormati tetapi tidak ada suara positif, eh? ;-)
richq
1
Alias ​​dapat digunakan setelah pipa baik-baik saja. Mereka hanya tidak muncul kembali.
maco
1
Hei, hei, saya terangkat. Saya suka ini lebih baik daripada alias.
Dmitriy Likhten
@marco: Anda benar (dengan bash) - Saya memikirkan csh, di mana mereka tidak bisa. Ups!
richq
29

Edit ~ / .bash_aliases Tambahkan baris yang mengatakan:

alias grep='grep -n --color'

~ / .bash_aliases secara otomatis disertakan oleh ~ / .bashrc jika ada

maco
sumber
8
Atau tambahkan baris .profilejika Anda ingin bekerja di semua shell bukan hanya bash.
LassePoulsen
1
ini tidak akan bekerja dengan xargs misalnya:find /usr/share -name '*.txt' |xargs grep testing
rfabbri
2

Anda dapat memodifikasi file .bashrc yang terletak di direktori home Anda dengan mendefinisikan alias, yang akan menimpa pengaturan default apa pun:

alias grep = 'grep -n --color'

setelah perubahan tutup dan buka terminal lagi karena file hanya dibaca ketika Anda membuka terminal.

Jika Anda melihat pada file .bashrc Anda akan menemukan lebih banyak alias default seperti:

alias ll = 'ls -l'

alias la = 'ls -A'

alias l = 'ls -CF'

Paolo Sammicheli
sumber
1

Buat skrip di samping alias yang disebutkan dalam jawaban lain. Alias ​​dengan sendirinya tidak akan selalu berfungsi, dan lapisan skrip cukup cepat untuk keluaran yang dapat dibaca manusia.

Pilih nama pendek, seperti cgrep:

#!/bin/sh
grep --color -n "$@"

Tempatkan di jalur Anda, katakan ~/bin(jika Anda membaca PDU ini di jalur Anda :). Maka hal-hal seperti ini akan berhasil:

find /usr/share -name '*.txt' | xargs cgrep testing

Aku masih tidak begitu senang, aku juga ingin grep selalu warna ketika stdout ke terminal tanpa mengetik cgrep secara selektif.

rfabbri
sumber