私は以下を使用しようとしています:
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