Как я могу удалить первые 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