Bash의 별칭에 사용자 정의 변수 삽입

Bash의 별칭에 사용자 정의 변수 삽입

.bashrc다음 예와 같이 파일의 명령에 별칭을 추가하고 싶습니다 .

alias take_row="cat prova.csv_001.txt | awk -v nrow="${nrow}" '{if (NR==nrow) print}'"

nrow하지만 터미널에서 명령을 실행할 때 변수를 지정 하고 싶습니다 . 예를 들어:

take_row 1--> 스크립트는 첫 번째 줄을 차지합니다.

take_row 20--> 스크립트는 20번째 줄을 차지합니다.

명령에 <command> | <read nrow user input>etc와 같은 것을 어떻게 작성합니까?

답변1

별칭 대신 함수를 사용하세요. 이 경우 위치 매개변수를 참조할 수 있습니다 $1.

take_row () {
    local nrow="$1"
    cat prova.csv_001.txt | awk -v nrow="${nrow}" '{if (NR==nrow) print}'
}

이 특별한 경우에는 다음을 해결할 수도 있습니다.고양이의 쓸모없는 사용:

take_row () {
    local nrow=$1
    awk -v nrow="${nrow}" '{if (NR==nrow) print}' prova.csv_001.txt
}

...불필요한 코드를 제거하여 코드를 더 짧게 만드세요.

take_row () {
    local nrow=$1
    awk -v nrow="${nrow}" 'NR==nrow' prova.csv_001.txt
}

관련 정보