Alias ​​grep ” $1” filename doesn't work, somehow “$1 ”zaginął

Oct 21 2020

Normalna grep

wolf@linux:~$ egrep 4.4.4.4 data.csv A,4.4.4.4,4.4.4.5,4.4.4.6,3.3.3.3,3.3.3.4 wolf@linux:~$ 

Ponieważ mam dużo danych do grepa, umieściłem to na aliasie.

wolf@linux:~$ alias z="egrep $1 data.csv"
wolf@linux:~$ 

Ale to nie działa

wolf@linux:~$ z 4.4.4.4
grep: 4.4.4.4: No such file or directory
wolf@linux:~$ 

Okazuje się, że $1brakowało w aliasie.

wolf@linux:~$ alias z alias z='egrep data.csv' wolf@linux:~$

Jaki był tego powód?

Odpowiedzi

7 user14251572 Oct 21 2020 at 12:03

Spróbuj użyć funkcji zamiast aliasu

z() { egrep -- "$1" data.csv; }

Wynik

$ z() { egrep -- "$1" data.csv; } $ z 3.3.3.3
A,4.4.4.4,4.4.4.5,4.4.4.6,3.3.3.3,3.3.3.4
B,1.1.1.1,1.1.1.1,1.1.1.2,1.1.1.3,3.3.3.3
$