파일에서 별표를 잡는 Bash

파일에서 별표를 잡는 Bash

다음과 같은 스크립트에서 파일을 처리하려고 할 때 각 줄의 첫 번째 문자에 별표가 포함된 텍스트 파일이 있습니다.

while read line; do
  out=$(echo $line | awk '{ print $3 }')
  echo $out
done < file_with_asterisks

내가 원하는 세 번째 열 대신 현재 작업 디렉터리의 파일을 인쇄하고 있습니다.

별표를 제거하면 문제가 해결되었으므로 그것이 globbing이라는 것을 알았습니다.

bash가 별표를 와일드카드 대신 텍스트로 처리하도록 만드는 방법은 무엇입니까?

답변1

변수 주위에 따옴표를 넣어야 합니다.

while IFS= read -r line; do
  out=$(echo "$line" | awk '{ print $3 }')
  echo "$out"
done < file_with_asterisks

귀하의 경우 확장 echo $line(각 줄의 초기 별표 뒤에 공백이 있다고 가정합니다)

관련 정보