Удаление и замена средней части строки в bash
У меня есть несколько строк:
Central and Western</td><td><a href="javascript:pop1('major-housing-estate/30006.html');" title="Kwun Lung Lau">Kwun Lung Lau
Central and Western</td><td><a href="javascript:pop1('major-housing-estate/61782.html');" title="The Merton">The Merton
Eastern</td><td><a href="javascript:pop1('major-housing-estate/10038.html');" title="Fung Wah Estate">Fung Wah Estate
Wong Tai Sin</td><td><a href="javascript:pop1('major-housing-estate/20134.html');" title="Tsz Oi Court">Tsz Oi Court
И я хочу снять и заменить средние части:
От:
</td><td><a href="javascript:
Для того, чтобы:
">
Я хочу заменить всю эту часть персонажем:
;
Мне нужны мои строки, чтобы стать:
Central and Western;Kwun Lung Lau
Central and Western;The Merton
Eastern;Fung Wah Estate
Wong Tai Sin;Tsz Oi Court
Как мне сделать это в общем виде?
1 ответ
Решение
Если ваши строки находятся в файле с именем file
:
$ sed 's|</td><td><a href="javascript:[^>]*">|;|g' file
Central and Western;Kwun Lung Lau
Central and Western;The Merton
Eastern;Fung Wah Estate
Wong Tai Sin;Tsz Oi Court
Если ваша строка находится в переменной оболочки с именем s
:
$ echo "$s"
Central and Western</td><td><a href="javascript:pop1('major-housing-estate/30006.html');" title="Kwun Lung Lau">Kwun Lung Lau
$ echo "$s" | sed 's|</td><td><a href="javascript:[^>]*">|;|g'
Central and Western;Kwun Lung Lau