普通的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
$