![-i '`[echo $var]`i word' 파일을 sed하는 방법은 무엇입니까?](https://linux55.com/image/9218/-i%20'%60%5Becho%20%24var%5D%60i%20word'%20%ED%8C%8C%EC%9D%BC%EC%9D%84%20sed%ED%95%98%EB%8A%94%20%EB%B0%A9%EB%B2%95%EC%9D%80%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F.png)
암호:
pos=2;
printf "Masi \nwas \nhere" > /tmp/1
sed -i '`echo $pos`i huhu' /tmp/1
예상 출력:
야무진 후후 예전에는 여기
현재 출력:
sed: -e expression #1, char 1: unknown command: ``'
답변1
아포스트로피 안의 표현식은 평가되지 않습니다(하위 쉘이나 변수도 마찬가지). 일반 따옴표를 사용해야 합니다.
$ pos=2;
$ printf "Masi \nwas \nhere" > /tmp/1
$ sed -i "`echo $pos`i huhu" /tmp/1
$ cat /tmp/1
Masi
huhu
was
here
이는 다음과 같습니다.
$ sed -i "${pos}i huhu" /tmp/1
(서브쉘 없음)