时间:2010-07-24 04:24:06

标签: unix shell sed

12 个答案:

答案 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本身应该比sedcut更快,因为没有正则表达式或分隔符匹配,但是分别为每一行调用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"

请参阅http://tldp.org/LDP/abs/html/string-manipulation.html

答案 10 :(得分:0)

答案 11 :(得分:0)