エイリアス grep "$1" ファイル名が機能せず、"$1" がありません。

エイリアス grep

ノーマル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:~$ 

grepする必要があるデータが多いので、それをエイリアスに入れました。

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

しかし、これはうまくいきません

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

$1これがエイリアスから欠落していることがわかりました。

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

その理由は何ですか?

ベストアンサー1

エイリアスの代わりに関数を試してください。

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

出力

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

おすすめ記事