2017-02-17 21 views
1

Мне нужно вырезать несколько символов из начала и конца строки. Строка не имеет определенного формата и может быть случайными числами и словами. Я пытаюсь удалить 5 символов в начале и 11 из конца строки.Вырезать число символов в начале строки и конца строки

Входная строка:

 
342136001788006DEEFF0000060000806000006HSV40002HP 

Выходная строка:

6001788006DEEFF000006000080600000 

В полужирный символы 3413 и 6HSV40002HP удаляются от входа.

+0

Что вы на самом деле пытались это не сработало? Это не бесплатный сайт кодирования, но мы поможем вам, если вы действительно попытаетесь застрять. –

ответ

0

это нормально нашел мой ответ, используя команду вырезать, который я так фокусирующую с AWK & СЭД, но покрой помогает в конце

вырезать -c6-38 Test.txt

0

Вы нашли cut commamd Ват является лучшим решением в этом случае. Вы задавались вопросом, как вы должны это делать с sed, который будет интересен для более сложных ситуаций. Решение нуб является (с использованием ; для 2-х различных substititions и $ для конца-линии):

echo '342136001788006DEEFF0000060000806000006HSV40002HP' | 
sed 's/.....//;s/...........$//' 

Вы не хотите, чтобы посчитать точки, вы можете сказать, как часто картина повторяется с pattern{count}.
И вы можете запомнить/вспомнить шаблон с `s/.. (pattern) ../ \ 1/'.

echo '342136001788006DEEFF0000060000806000006HSV40002HP' | 
sed 's/.\{5\}\(.*\).\{11\}/\1/' 

Когда sed поддерживает пороть -r, вы можете избежать всех Thise:

обратные слэши
echo '342136001788006DEEFF0000060000806000006HSV40002HP' | 
sed -r 's/.{5}(.*).{11}/\1/' 
Смежные вопросы