다음 구조의 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
답변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
.