%EC%9D%84%20%EC%9D%B8%EC%87%84%ED%95%A9%EB%8B%88%EB%8B%A4..png)
나는 다음을 사용하려고합니다 :
sed -n '/String1/,/String2/p' Filename
String1과 String2 사이의 모든 줄을 인쇄합니다. String1을 사용자 입력으로 추가하고 싶지만,
read $userinput
sed -n '/$userinput/,/String2/p' Filename.
$userinput
그러나 입력이 따옴표 안에 있으므로 주어진 입력 대신 문자열로 읽혀집니다 .
답변1
간단히 말해서 다음과 같습니다.
read userinput # without sigil '$'
sed -n "/$userinput/,/String2/p" file # with double quotes
쉘에서 올바르게 인용하는 방법을 배우는 것은 매우 중요합니다.
공백/메타 문자를 포함하는 모든 리터럴은 "큰따옴표"로 처리합니다.모든확장:
"$var"
,"$(command "$var")"
,"${array[@]}"
,"a & b"
.'single quotes'
코드나 텍스트$'s: 'Costs $5 US'
에 대해서는ssh host 'echo "$HOSTNAME"'
을 참조하십시오.
http://mywiki.wooledge.org/Quotes
http://mywiki.wooledge.org/Arguments
http://wiki.bash-hackers.org/syntax/words