Linux sed - 在开始和结束时删除而不删除中间语法

时间:2018-01-27 02:27:13

标签: linux bash sed

我正在尝试制作自动脚本。

我被困在我采用源代码行的地方:

<div class="u-flL condText  "  id="vi-itm-cond" itemprop="itemCondition">
  Seller refurbished
</div>

我希望脚本始终删除“Seller Refurbished”之前和之后的文本。我知道“卖家重新销售”是一个可以改变的变量。

sed之后我想要这个结果:

'Title: Seller refurbished`

4 个答案:

答案 0 :(得分:1)

1970-01-01T00|sdafasdfsladfsdfas|sadfljasdkfsf|record1:32423
                                               record2:45245
                                               record3:dasfas
1970-01-01T001|sdafasdfsladfsdfas1|sadfljasdkfsf1|record1:32423
                                               record2:45245
                                               record3:dasfas1

说明:

此单行包含两个替换说明。第一个用sed 's/<div[^>]*>/Title: /;s/<\/div>//' 替换开始<div>标记,第二个删除结束Title:标记。

如果您希望在结果周围使用单引号,则可能还需要更多字符,因为Bash不会在单引号之间转义任何内容:

</div>

答案 1 :(得分:1)

awk '!/</ {print "Title:"$0}' x.txt

答案 2 :(得分:0)

var='<div class="u-flL condText  "  id="vi-itm-cond" itemprop="itemCondition">Seller refurbished</div>'

另一个sed尝试:

sed -E "/Seller refurbished/s/^/'Title: /;s/<[^>]*>//g;s/$/'/" <<<"$var"
'Title: Seller refurbished'

答案 3 :(得分:0)

使用你的例子,这个sed足够了

sed "/</d;s/.*/'Title: &'/" infile