![이 sed 표현식에서 변수를 어떻게 확장할 수 있나요? [복사]](https://linux55.com/image/97301/%EC%9D%B4%20sed%20%ED%91%9C%ED%98%84%EC%8B%9D%EC%97%90%EC%84%9C%20%EB%B3%80%EC%88%98%EB%A5%BC%20%EC%96%B4%EB%96%BB%EA%B2%8C%20%ED%99%95%EC%9E%A5%ED%95%A0%20%EC%88%98%20%EC%9E%88%EB%82%98%EC%9A%94%3F%20%5B%EB%B3%B5%EC%82%AC%5D.png)
다음과 같은 텍스트 파일이 있습니다.
melon = [2 2 4 5];
apple = [3 6 4 4];
lemon = [1 5 4 8];
명명된 변수를 bash 배열로 읽는 함수를 만들고 싶습니다. 이것이 내가 생각해낸 것입니다. 변수가 $FruitToParse
확장되지 않았기 때문에 작동하지 않습니다.
#!/bin/bash
set -e
set -u
function file_to_array {
local FileToParse=${1}
local FruitToParse=${2}
for i in `cat ${FileToParse} | sed -n -e 's/.*${FruitToParse} = \[\(.*\)\];/\1/p'`); do
echo ${i}
done
}
file_to_array fruits.txt apple
답변1
sed에서는 작은따옴표 대신 큰따옴표를 사용하세요.
$ bob="cool"; echo "bob is sad" | sed "s/sad/$bob/"
bob is cool