【发布时间】:2021-03-06 05:17:25
【问题描述】:
我正在尝试在 /var/spool/mail/mysuser 文件中隔离邮件的标题。
如果段落包含 AAA,则打印段落(空白行分隔段落)
sed 在使用字符串“AAA”进行搜索时工作
$ sed -e '/./{H;$!d;}' -e 'x;/AAA/!d;' /var/spool/mail/mysuser
当使用变量时不起作用:
$ MyVar="AAA"
$ sed -e '/./{H;$!d;}' -e 'x;/$MyVar/!d;' /var/spool/mail/mysuser
=> 没有输出,因为单引号阻止了变量的扩展
尝试使用单引号
$ sed -e "/./{H;$!d;}" -e "x;/$MyVar/!d; /var/spool/mail/mysuser
sed: -e expression #2, char 27: extra characters after command
实际上,第一次搜索也不适用于双引号
$ sed -e "/./{H;$!d;}" -e 'x;/AAA/!d;" /var/spool/mail/mysuser
sed -e "/./{H;$!d;}" -e "x;/AAA/date;" /var/spool/mail/mysuser
sed: -e expression #2, char 9: extra characters after command
目前我也在考虑 awk 没有成功
有什么建议吗?
【问题讨论】: