剪切字符串开头和字符串结尾的字符数

时间:2017-02-17 07:52:54

标签: ksh

我需要从字符串的开头和结尾剪切一些字符。字符串没有特定的格式,可以是随机数字和单词。我试图在开头删除5个字符,从字符串末尾删除11个字符。

输入字符串:

342136001788006DEEFF0000060000806000006HSV40002HP

输出字符串:

6001788006DEEFF000006000080600000

从输入中删除加粗字符34136HSV40002HP

2 个答案:

答案 0 :(得分:0)

可以使用cut命令找到我的答案,我很专注于awk& sed,但最终切割有帮助

cut -c6-38 test.txt

答案 1 :(得分:0)

在这种情况下,您发现cut commamd wat是最佳解决方案。 您想知道如何使用sed执行此操作,这对于更复杂的情况会很有趣。 noob解决方案是(使用;用于2个不同的替代,$用于行尾:

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

您不想计算点数,可以判断模式与pattern{count}重复的频率 你可以记住/回忆一个带有s / ..(模式)../ \ 1 /'.

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

sed支持flog -r时,您可以避免所有这些反斜杠:

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