test
<div>uyiuyewrwuriuo eerer rwerw rwerw<> <a href="index.html">shuba 28900 rub.</a>
</div>sh
#!/bin/bash
cat test | sed -r 's/^.*uba ([0-9]+) rub.*$/\1/'Запускаю и вижу:
28900
</div>А нужно получить только цифру 28900
А получается что есть цифра и хвост за ней, что не так в регулярке? Почему вылезает </div> ?
> А получается что есть цифра и хвост за ней, что не так
> в регулярке? Почему вылезает </div> ?man sed
>[оверквотинг удален]
> </div>
> sh
> #!/bin/bash
> cat test | sed -r 's/^.*uba ([0-9]+) rub.*$/\1/'
> Запускаю и вижу:
> 28900
> </div>
> А нужно получить только цифру 28900
> А получается что есть цифра и хвост за ней, что не так
> в регулярке? Почему вылезает </div> ?man xmlstarlet
>> в регулярке? Почему вылезает </div> ?
> man xmlstarlet-bash: xmlstarlet: команда не найдена
Совсем уже со своим xml. Если не выстрелил grep, потом не выстрелил sed, то awk -f \< '...' и не балуйся.
>>> в регулярке? Почему вылезает </div> ?
>> man xmlstarlet
> -bash: xmlstarlet: команда не найдена
> Совсем уже со своим xml. Если не выстрелил grep, потом не выстрелил
> sed, то awk -f \< '...' и не балуйся.человекам иногда нужно давать такие иyструменты чтобы оне поменьше думали -- а то у них перегруз случается раньше чем минимальный опыт.
в мануале что по sed что по awk многа букав -- разучались люди читать.
> <div>uyiuyewrwuriuo eerer rwerw rwerw<> <a href="index.html">shuba 28900 rub.</a>
> </div>
> cat test | sed -r 's/^.*uba ([0-9]+) rub.*$/\1/'Следи за руками:
<test sed -nr 's/^.*uba ([0-9]+) rub.*$/\1/p'
> Запускаю и вижу:
> 28900
> </div>
> А нужно получить только цифру 28900Во-первых, _число, а не цЫфру.
> А получается что есть цифра и хвост за ней, что не так
> в регулярке? Почему вылезает </div> ?А во-вторых, ман сед же.
> Во-первых, _число, а не цЫфру.он ещё садик не закончил -- а ты ему про маны.
> Следи за руками:
> <test sed -nr 's/^.*uba ([0-9]+) rub.*$/\1/p'волшебник! шаман! спасибо!
можно несколько вопросиков?значок "<" перед test что означает?
и в конце /p что значит?маны читал. про sed тоже читал. ну не доходит до меня значение ключей -n и -r
-r, --regexp-extended
использование в скрипте расширенных регулярных выражений.
-e script, --expression=script
добавление скрипта в исполняемые командысталкнулся еще с такой проблемой. страница html (оригинал) в кодировке 1251. а у меня пингвин utf8.
пробую так:
<http.txt | iconv -f cp1251 | sed -nr 's/^.*уба ([0-9]+) руб.*$/\1/p'и ни как не поддается зверь!
> значок "<" перед test что означает?cat test |
> и в конце /p что значит?
> пробую так:
> <http.txt | iconv -f cp1251 | sed -nr 's/^.*уба ([0-9]+) руб.*$/\1/p'
> и ни как не поддается зверь!За ненадобностью, нет смысла конвертировать цифры, ибо нужны только они.
sed -nr 's/^.* ([0-9]*) .*$/\1/p' test
>> пробую так:
>> <http.txt | iconv -f cp1251 | sed -nr 's/^.*уба ([0-9]+) руб.*$/\1/p'
>> и ни как не поддается зверь!
> За ненадобностью, нет смысла конвертировать цифры, ибо нужны только они.
> sed -nr 's/^.* ([0-9]*) .*$/\1/p' testцифры должны относиться к чему то например к "Шуба" а не к сапогам.
задача была выцепить цену "Шуба". мы ищем "Шуба" и выдергиваем цену. Слова "Шуба" унас в 1251 соответвственно нужна перекодировка.
> цифры должны относиться к чему то например к "Шуба" а не к сапогам.
> задача была выцепить цену "Шуба". мы ищем "Шуба" и выдергиваем цену.
> Слова "Шуба" унас в 1251 соответвственно нужна перекодировка.iconv -f cp1251 http.txt | sed -nr 's/^.*уба ([0-9]+) руб.*$/\1/p'
>> <test sed -nr 's/^.*uba ([0-9]+) rub.*$/\1/p'
> значок "<" перед test что означает?то же, что и всегда, перенаправление в/в
> и в конце> пробую так:
> <http.txt | iconv -f cp1251 | sed -nr 's/^.*уба ([0-9]+) руб.*$/\1/p'
> и ни как не поддается зверь!<file command -option1 -option2 -option3
это то же самое (чуть нетрадиционно записанное, но вызвавшее ошибку выше), что и любое из
command -option1 -option2 -option3 <file
command -option1 -option2 <file -option3
command <file -option1 -option2 -option3потому, что перенаправление в/в и опции ком.строки парсят и/или обрабатывают разными программами в разное время
бессмысленно (хотя ошибки не даст, вроде) следующее
command -optionA -optionB -optionC | command2 <file -option1 -option2 -option3
> А нужно получить только цифру 28900
> А получается что есть цифра и хвост за ней, что не так
> в регулярке? Почему вылезает </div> ?Короче, Склифосовский!
sed 's/[^0-9]*//g' test
perl -pe 's/[^0-9]+//g' test