출력이 " * "일 때 cut 명령이 다르게 동작합니다.

출력이 " * "일 때 cut 명령이 다르게 동작합니다.

쉘 스크립트를 생성하려고 하는데, 아래는 파일의 레코드에서 일부 값을 추출하려는 부분입니다.

tgt_val=`cat $file_name | grep "$string_name" | cut -d"|" -f$column_no`

이 방법은 지정된 열에 특정 숫자 또는 문자열 값이 있으면 제대로 작동하지만 열 값이 " * "이면 실패합니다.

예를 들어:

102|Sam|*|USA

이 명령은 열 1,2,4에서 잘 작동합니다.

그러나 열 3의 경우 현재 디렉터리에 있는 모든 파일의 출력이 제공됩니다.

누군가 이 문제를 해결하도록 도와주세요.

답변1

무슨 일이 일어나고 있는지 *쉘이 어떤 방식으로든 해석하고 있다는 것입니다. 추출된 모든 필드가 항상 올바르게 인용되었는지 확인하세요.

관련 정보