Bash - 具有指定长度的序列

时间:2015-02-18 18:39:57

标签: bash

在R中,使序列成为指定长度的有用方法是使用length.out。例如

> for(i in seq(1,10,length.out=3)){print(i)}
[1] 1
[1] 5.5
[1] 10

bash中有length.out的类似物吗?

1 个答案:

答案 0 :(得分:0)

有两种常见的技术在shell脚本(不仅仅是Bash)中是惯用的。 shell本身传统上只是构建控制结构和管道的简单工具(原始的Bourne shell不支持内置算法 - 甚至简单的比较被委托给一个简单的外部工具,test又名{{1然而,它往往是现代shell中的内置命令)。它的功能来自外部程序,因此有很多小程序可以执行简单的操作,例如生成无穷无尽的令牌流,并从流中选择第一个[行(默认n = 10):

n

也许添加行号?

yes | head

反转并唱一首歌?

yes | nl | head

另一个常见的习惯用法是,这些过多的简单实用程序不足或效率低下,是用各种脚本语言扩展shell的范围 - 传统上主要是yes | nl | head | tac | while read num _; do printf '%i bottles of beer on the wall\n' "$num" done 和Awk;最近,还有Perl,Python,Ruby等(而且TCL也很受欢迎)。这是过去十天的日期。

sed

与此同时,特别是Bash已经扩展了相当完整的整数运算,包括一个数字perl -e 'system(qq{date -d "$_ days ago" +%F}) for reverse 0..9' 循环:

for