PermLUG
|
Пермская группа пользователей Linux |
|
ОблакоВход для пользователейНавигация |
Работа со строками в bash![]() Не хватает опыта для работы со строками на баше. Скажем, как получить позицию вхождения подстроки "a" в строку "b"? Как отрезать от строчки, произвольное число символов с конца? И много других как. Понимаю, что скорее всего есть какие-то изящные и красивые решения, без перебора символов по циклу, но вот найти их так и не смог. Может быть кто-нибудь подскажет?
|
Новые записи в блогах |
| Пермская группа пользователей Linux, 2003—2008 |
Комментарии
на bash не стоит этим заниматься. лучше используй awk, perl, sed и т.п. там всё есть нативно с разными нюансами
Оно и понятно. awk, sed, cut, grep - это всё приветствуется. Подскажи мне элегантное решение с их помощью, я не против.
А вот перл - не хочется от него зависеть. Скажем, на том же линуксовом роутере перла нет и не на любом шелле есть права, чтобы поставить перл, а вот то, что перечислено выше - есть практически везде, ибо весит копейки и памяти ест меньше скриптов на перле.
[root@brain root]# mount /dev/hands /mnt/ass -o nosuid,umask=000
Позиция вхождения подстроки:
echo "Software is " | awk '{print(index($1, "ware"));}'
Отрезание допустим 3х символов с конца строки:
echo "like SEX " | sed 's/.\{3\}$//'
Ну или 4х с начала:
echo "it\`s better, when it\`s FREE" | sed 's/^.\{4\}//'
А вообще в основном все делается через регулярки и ф-ции awk.
Реф по ф-циям и командам sed, и awk
О, огромное спасибо! :) То, что надо!
[root@brain root]# mount /dev/hands /mnt/ass -o nosuid,umask=000
Есть ещё ABSG. http://gazette.linux.ru.net/rus/articles/abs-guide/x4165.html
Я убил ICQ. Пользуйтесь Jabber. phoenix@2on.net
Совсем чудно! :) Благодарю! :)
[root@brain root]# mount /dev/hands /mnt/ass -o nosuid,umask=000
absg эт классика :)