shell에서 commad 결과값(grep,awk,sed,...)을 객체로 할당하는 방법

2019. 11. 7. 19:30꿀팁 분석 환경 설정/Linux 관련 팁

728x90

도움이 되셨다면, 광고 한번만 눌러주세요.  블로그 관리에 큰 힘이 됩니다 ^^

특정 명령어를 사용해서 받은 값을 객체로 받고 싶었다.

삽질을 한 하루하다가 방법은 알고 있있지만 내가 못한 것이였다.

a.txt
(상황)
a.txt에서 efgh 라는 값을 찾고 싶다.
arr=( $(grep "abcd" a.txt) )

echo "${arr[2]}"​


위와 같이 하면 arr이라는 객체에서 2번째 index부분에 efgh라는 값을 받게 되는 것을 알 수 있다!


먼가 여기서 특정 부분을 가져와서 객체로 만들고 싶을 때는 음... 먼가 그냥 될 줄 알았는데 잘 안된다.

### ver1,ver2는 일단 삽질의 결과 
## ver0 (이렇게 하는 것이 맞는 듯)
path2="${arr[2][@]}
-----------------
path=("${arr[2]}")
## ver1
for value in "${path[@]}" ; do
      path2="$value"
done
## ver2
path2="${path[@]}"
--------------------
echo "$path2"
## efgh​




다른 사람들은 삽질의 시간이 줄기를...





https://stackoverflow.com/questions/9449417/how-do-i-assign-the-output-of-a-command-into-an-array
728x90