linux - How do I shorten this grep command? -
i want grep command shorter, e.g., able type g on command line execute grep options -pei.
i've tried alias in bash, piping doesn't work.
alias g='grep --color auto -pei' gives me
history |g qemu grep: auto: no such file or directory grep: qemu: no such file or directory i tried in .bashrc
function g () { /bin/grep -pei "$@" ;} it still outputs
history |g qemu grep: qemu: no such file or directory
there 2 separate problems alias:
long-form gnu options (those starting
--rather-) require=between option name , value (argument):- i.e., should
--color=auto, not--color auto
- i.e., should
you're using option
-eincorrectly: purpose accept multiple search patterns, each-einstance requiring argument - in case,[-]edirectly followedi, therefore mistakenly serves-e's argument, i.e., pattern, causing true search pattern misinterpreted filename operand.
thus, redefine alias follows:
alias g='grep --color=auto -pi' update: tripleee's answer implies, using -e has 1 advantage: allows specify patterns start - without getting misinterpreted further options; thus, placing -e last in alias give advantage.
alias g='grep --color=auto -pie' of course, not building -e alias leaves option specify on demand, when invoking alias, make use of multiple -e options more intuitable.
finally, advice given @thatotherguy in comment worth heeding:
before defining alias, make sure definition works expected directly entered command.
Comments
Post a Comment