Ваше регулярное выражение соответствует только example.com
, а sed
заменяет только example.com
с пустой строкой. Ваше регулярное выражение должно соответствовать любой строке, содержащей example.com или test.com
sed -i 's@.*\(test\|example\)\.com.*@@i' file.txt
Usar sed y expresiones regulares
sed -e 's/<Currentnumber>\(.*\)<\/Currentnumber>/\1/' file.html
¡Nunca analice html con expresiones regulares! Ese es el error más común en los sitios de intercambio de pilas.
Es mejor usar un analizador XML/HTML como xmllint , xmlstarlet o saxon -lint mi propio proyecto
Ejemplos:
xmllint --xpath '//Currentnumber/text()' file.html
xmlstarlet sel -t -v '//Currentnumber/text()' file.html
saxon-lint --xpath --html '//Currentnumber/text()' file.html
Надеюсь, это поможет следующему человеку:
$ echo '<Currentnumber>0.3.5</Currentnumber>' | cut -d '>' -f 2 | cut -d '<' -f1
0.3.5
Об этом ответе:
cut
будет там. (Ответ на вопрос «попросить devops установить линтер внутри контейнера» будет совершенно не -стартовым)