파일에서 (특정 행과 열의) 값을 추출하여 새 변수에 할당하는 방법

파일에서 (특정 행과 열의) 값을 추출하여 새 변수에 할당하는 방법

다음 구조의 3X4 행렬인 텍스트 파일 "a.txt"가 있습니다.

1 apple 50 Mary
2 banana 40 Lily
5 orange 34 Jack

값 "40"(행 2, 열 3)을 추출하여 "price"라는 새 변수에 할당하고 싶습니다.

나는 이것을 시도했습니다 :

awk 'NR == 2 {print $3}' a.txt > price
echo "$price"

그런데 결과는 왜:

0

이 문제를 어떻게 해결할 수 있나요? 감사해요.

답변1

명령의 출력을 변수에 저장하려면 다음을 사용하십시오.

variable=$( commandFooBar )

확인하다여기

답변2

두 개의 서로 다른 쉘 연산자를 혼동하고 있습니다.

리디렉션은 >출력을 파일로 리디렉션합니다. 따라서 예제를 작동시키려면 다음을 사용할 수 있습니다.

awk 'NR == 2 {print $3}' a.txt > price
cat price   # display contents of file named price

$변수를 참조하므로 echo변수를 인쇄하려면 먼저 이전 변수의 출력에서 ​​설정해야 합니다. 이와 같이:

price=$(awk 'NR == 2 {print $3}' a.txt)
echo "$price"

답변3

값은 변수에 저장되지 않고 "price"라는 파일에 저장됩니다. 따라서 echo는 값을 표시하지 않습니다. 노력하다 vim price.

관련 정보