答案 0 :(得分:163)
这是一个老式的unix技巧,用于从一行中删除最后3个字符 不使用sed或awk ...
> echo 987654321 | rev | cut -c 4- | rev
987654
与前面使用'cut'的示例不同,这不需要了解行长度。
答案 1 :(得分:30)
答案 2 :(得分:12)
答案 3 :(得分:11)
$ x="can_haz"
$ echo "${x%???}"
can_
答案 4 :(得分:5)
答案 5 :(得分:2)
答案 6 :(得分:2)
你可以尝试
(whatever) | while read line; do echo $line | head --bytes -3; done;
head
本身应该比sed
或cut
更快,因为没有正则表达式或分隔符匹配,但是分别为每一行调用a可能会超过它。
答案 7 :(得分:1)
答案 8 :(得分:1)
答案 9 :(得分:1)
不需要剪切或魔法,在bash中你可以像这样切割一个字符串:
ORGSTRING="123456"
CUTSTRING=${ORGSTRING:0:-3}
echo "The original string: $ORGSTRING"
echo "The new, shorter and faster string: $CUTSTRING"
答案 10 :(得分:0)
答案 11 :(得分:0)