Титла: изтриване на част от текст Публикувано от: mrowcp в Dec 03, 2010, 08:34 Чак ме е срам да пускам нова тема...
Как да изтрия част от дума?Пример: cat file.txt Jiveq na 22nd nomer ulica Ivan 2ri. След промяната да стане: Jiveq na nd nomer ulica Ivan 2ri. Дефакто да няма 22 пред nd EDIT: намерих начин с: cut -c Титла: Re: изтриване на част от текст Публикувано от: b2l в Dec 03, 2010, 09:56 Код
Титла: Re: изтриване на част от текст Публикувано от: mrowcp в Dec 05, 2010, 11:01
И аз гледах някакви примери с sed, но нещо ми е трудно да разчета синтаксиса.Може ли да "преведеш" :) ? Титла: Re: изтриване на част от текст Публикувано от: b2l в Dec 05, 2010, 11:30
[^a-zA-Z ]* - намери всички символи които са различни от a-z, A-Z и " " (интервал) и ги замени с нищо (//g'). /g - глобално заместване на всички символи. Титла: Re: изтриване на част от текст Публикувано от: mrowcp в Dec 05, 2010, 12:08
Добре, но в този случай 2ката в името на улицата също няма да я има. Jiveq na 22nd nomer ulica Ivan 2ri. Титла: Re: изтриване на част от текст Публикувано от: b2l в Dec 05, 2010, 12:15 Аз ти бях отговорил преди да си промениш поста, т.е. искаш да махнеш само 22 само.
Код: $ echo "Jiveq na 22nd nomer ulica Ivan 2ri." | sed 's/22//g' Титла: Re: изтриване на част от текст Публикувано от: mrowcp в Dec 05, 2010, 12:38 Аз ти бях отговорил преди да си промениш поста, т.е. искаш да махнеш само 22 само. Ами трябваше ми, защото си играя с един баш скрипт, който прави проверка на правило в ipfw Лошото е, че при листване на ipfw -> ipfw list , пред номерата на редовете слага нули: 00009 00010 00011 00012 00013 00014 00015 и т.н. Скрипта проверява даденото ИП с какъв номер е записано в ipfw и ако е между 9 и 12 връща един отговор, ако е между 13 и 15 друг.Та когато сравнявам числата с -gt и има нули, сравняването не сработва. В този ред на мисли се сетих да питам и за: има ли начин да задам проверка на граници?Пример: в момента реда е по следния начин: Код
има ли начин да не ползвам и -gt и -lt , а да задам граница 9-12? Титла: Re: изтриване на част от текст Публикувано от: b2l в Dec 05, 2010, 12:44 А ако ги сравняваш с ">" и "<"...
Титла: Re: изтриване на част от текст Публикувано от: mrowcp в Dec 05, 2010, 12:54 А ако ги сравняваш с ">" и "<"... Предполагам пак ще стане.Просто идеята ми беше дали няма начин за задаване на рейндж :) Но проблема се усложни... В момента ако задам да режи 0 със sed имам редове от рода на: 00501 00050 и няма никакви нули.Как да задам нещо такова: ipfw list 00009 00040 00050 00090 00100 00200 Ако 4тия символ в думата/цифрата е различен от 0, изпиши Hello? Дугото което ще е по-лесно и за мен: мога ли да задам на промвенлива рейндж?Пример: test=1-100 тест да има стойност от 1 до 100.След което мн лесно ще мога да правя проверките. Титла: Re: изтриване на част от текст Публикувано от: romeo_ninov в Dec 05, 2010, 13:13 В този ред на мисли се сетих да питам и за: има ли начин да задам проверка на граници?Пример:как да не работи? ти помисли ли малко? Код: [root@dns ~]# aa=0100 Титла: Re: изтриване на част от текст Публикувано от: mrowcp в Dec 05, 2010, 13:26 В този ред на мисли се сетих да питам и за: има ли начин да задам проверка на граници?Пример:как да не работи? ти помисли ли малко? Не може да е вярно!Сигурен съм, че го тествах няколко пъти и даваше грешка :( Сега го пренаписах и вярно, че работи... Проверява си ги без проблем, дори и с 00 отпред. Мерси много :) П.С. Не трябва ли да е && а не || ? Ако е по-голямо от 90 И по-малко от 110 ( примера с 89 ) P.S.2 Да ползвам пак темата да питам: как да изтрия ред от тхт файл с команда? Пример: cat test.txt 1vi red neshto 2ri red blabla 3ti red pakneshto Искам да задам изтриване на целия 2ри ред ot test.txt с команда.Нещо като: grep blabla test.txt |del Намерих отговора :) grep -v Титла: Re: изтриване на част от текст Публикувано от: romeo_ninov в Dec 05, 2010, 16:34 В моя пример логиката е обратна, аз търся (и печатам на екрана) ако числото е <90 или >110. АКо искаш да е в интервала примерно 90 до 100 трябва да е:
Код: if [ $aa -гt 89 ] && [ $aa -лt 111 ]; then echo Yes;fi Код: cat file|awk 'NL!=2 {print $0}' |