using bash, I'm trying to insert a variable for the date and search a log file for that date, then send the output to a file. If I hardcode the date like this it works:
sed -n '/Nov 22, 2010/,$p' $file >$log_file
but if I do it like this it fails:
date="Nov 22, 2010"
sed -n '/$date/,$p' $file >$log_file
The error I get is: sed: 1: "/Nov 22, 2010/,": expected context address
Thanks for the help.
In shell scripts, there is a difference between single and double quotes. Variables inside single quotes are not expanded (unlike those in double quotes), so you would need:
date="Nov 22, 2010"
sed -n "/$date/,\$p" $file >$log_file
The backslash escapes the dollar sign that should be taken literally by the shell and has a meaning to sed.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With