File1中:
<a>hello</b> <c>foo</d>
<a>world</b> <c>bar</d>
这是一个可以使用的文件示例。如何使用sed删除所有具有<c>*</d>
的字符串?
答案 0 :(得分:4)
以下行会删除<c>
到</d>
的所有文字:
sed -e 's/<c>.*<\/d>//'
s/...//
中的位是一个正则表达式,而不是像shell一样使用的通配符,所以你可以放入正则表达式中的任何东西。
答案 1 :(得分:0)
如果您的所有数据都与示例的数据类似
# gawk 'BEGIN{FS=" <c>"}{print $1}' file
<a>hello</b>
<a>world</b>
答案 2 :(得分:0)
伟大的瑞士军刀!
我将其修改为从电子邮件中删除标题信息以获取归档脚本。它涉及使用日期和发件人信息重命名IMAP电子邮件(否则IMAP只编号为1,2,3等)。这是两个mod:
for i in $mailarray; do date -d $(less -f $i | grep -im 1 "Date:\ " | sed -e 's_^.*\(ate: \)__') +%F_%T%Z; done
for i in $mailarray; do less -f "$i" | grep -iEm 1 "From:\ " | sed -e 's_^.*\(rom\).*<\|^.*\(rom:\).__' | sed -e 's_@.*$__'; done
他们保存了大量无关的编码。谢谢。