-i '`[echo $var]`i word' 파일을 sed하는 방법은 무엇입니까?

-i '`[echo $var]`i word' 파일을 sed하는 방법은 무엇입니까?

암호:

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

(서브쉘 없음)

관련 정보