Как я могу удалить первые X символов из строки с помощью sed?
Я пишу сценарий оболочки для встроенного Linux в небольшой промышленной коробке. У меня есть переменная, содержащая текст pid: 1234 и я хочу удалить первые X символов из строки,так что только 1234 остается. У меня есть больше переменных, которые мне нужно "очистить", поэтому мне нужно вырезать X первых символов и ${string:5} не работает по какой-то причине в моей системе.
единственное, что коробка, кажется, есть sed.
Я пытаюсь сделать следующее работа:
result=`echo "$pid" | sed 's/^.{4}//g'`
какие идеи?
9 ответов:
следующее должно работать:
var="pid: 1234" var=${var:5}вы уверены
bashоболочка выполняет ваш скрипт?даже POSIX-совместимый
var=${var#?????}было бы предпочтительнее использовать внешний процесс, хотя это требует от вас жесткого кода 5 в виде шаблона фиксированной длины.
вот краткий метод, чтобы вырезать первые X символов с помощью
cut(1). В этом примере удаляются первые 4 символа.echo "$pid" | cut -c 4-
использовать ("использовать расширенные регулярные выражения в скрипте") к
sedчтобы использовать{n}синтаксис:$ echo 'pid: 1234'| sed -r 's/^.{5}//' 1234
скорее всего, у вас будет
cutкак хорошо. Если так:[me@home]$ echo "pid: 1234" | cut -d" " -f2 1234