![별칭 grep "$1" 파일 이름이 작동하지 않고 "$1"이 누락되었습니다.](https://linux55.com/image/182106/%EB%B3%84%EC%B9%AD%20grep%20%22%241%22%20%ED%8C%8C%EC%9D%BC%20%EC%9D%B4%EB%A6%84%EC%9D%B4%20%EC%9E%91%EB%8F%99%ED%95%98%EC%A7%80%20%EC%95%8A%EA%B3%A0%20%22%241%22%EC%9D%B4%20%EB%88%84%EB%9D%BD%EB%90%98%EC%97%88%EC%8A%B5%EB%8B%88%EB%8B%A4..png)
정상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
$