我试图从电子邮件中提取标头并从中创建JSON片段。我使用sed来提取密钥和值,但它没有在每一行上添加尾随引用:
$ cat email1 | grep -i -e "^subject:" -e "^from:" -e "^to:" | \
sed -n 's/\^([^:]*\):[ ]*\(.*\)$/"\1":"\2"/gp'
"From":"Blah Blech <blah.blech@blahblech.com>
"To":"foo@bar.com
"Subject":"Yeah
我不明白为什么替换模式不起作用。
答案 0 :(得分:0)
要求救援!
$ awk -F": *" -vOFS=":" -vq="\"" 'tolower($0)~/^from|to|subject/
{print q$1q,q$2q}' email1
还结合了cat
或grep
步骤。
答案 1 :(得分:0)
剥离回车符@tripleee建议修复sed问题(使用ctrl -v ctrl-m捕获文字回车):
$ cat email1 | tr -d '^M' | grep -i -e "^subject:" -e "^from:" -e "^to:" | \
sed -n 's/^\([^:]*\):[ ]*\(.*\)$/"\1":"\2"/gp'
"From":"Blah Blech <blah.blech@blahblech.com>"
"To":"foo@bar.com"
"Subject":"Yeah"