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?


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.


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


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'


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.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.