seq妙用一则

简介:

[haoren@IM-SJ01-Server01 gongsi]$ seq -f '201110%02g' 1 26

20111001

20111002

20111003

20111004

20111005

20111006

20111007

20111008

20111009

20111010

20111011

20111012

20111013

20111014

20111015

20111016

20111017

20111018

20111019

20111020

20111021

20111022

20111023

20111024

20111025

20111026

等同于 {20111001..20111026}




-s 指定分隔符,默认是换行

-w 等位补全,就是宽度相等,不足的前面补 0

-f 格式化输出,就是指定打印的格式

可以不指定起始数值,则默认为 1

另外,不用 seq 的话还可以这样:

 for i in {1..10};do echo $i;done

1 和 10 之间是两个半角的点


从1循环到100的两种方法


for x in `seq 1 100`;do echo $x;done


for x in {1..100};do echo $x;done


输出1-100中,不包含数字7,且不能被7整除的数


seq 100 | grep -v "7" | awk '$0%7!=0{print}'


seq -f"%3g" 9 11
9
10
11


% 后面指定数字的位数 默认是"%g", 


"%3g"那么数字位数不足部分是空格


sed -f"%03g" 9 11 这样的话数字位数不足部分是0

% 前面制定字符串

seq -f "str%03g" 9 11

str009
str010
str011


-w 指定输出数字同宽 不能和-f一起用 


输出是同宽的-s 指定分隔符 默认是回车


seq -s" " -f"str%03g" 9 11

str009 str010 str011

要指定\t 做为分隔符号

seq -s"echo -e "\t"" 9 11指定\n\n作为分隔符号


seq -s " " 1 10

1 2 3 4 5 6 7 8 9 10


seq -s ", " 1 10

1, 2, 3, 4, 5, 6, 7, 8, 9, 10


请用linux shell 写一段脚本,实现从1..1000中所有偶数的和值   

通过while 循环得到需要的结果:

start=1;
 
total=0;
 
while [ $start -le 1000 ];do
 
    [[ $(($start%2)) == 0 ]]&&total=$(($total+$start));
 
   start=$(($start+1));
 
done;
 
echo $total;


[chengmo@centos5 ~]$ start=1;total=0;while [ $start -le 1000 ];do [[ $(($start%2)) == 0 ]]&&total=$(($total+$start)); start=$(($start+1));done;echo $total;

250500

通过 for 循环得到结果:


start=0;
 
total=0;
 
for i in $(seq $start 2 1000); do
 
    total=$(($total+$i));
 
done;
 
echo $total;


[chengmo@centos5 ~]$ start=0;total=0;for i in $(seq $start 2 1000); do total=$(($total+$i));done;echo $total; 

250500

比较性能:

[chengmo@centos5 ~]$ time (start=0;total=0;for i in $(seq $start 2 1000); do total=$(($total+$i));done;echo $total;) 250500
real 0m0.016s
user 0m0.012s
sys 0m0.003s


[chengmo@centos5 ~]$ time (start=1;total=0;while [ $start -le 1000 ];do [[ $(($start%2)) == 0 ]]&&total=$(($total+$start)); start=$(($start+1));done;echo $total;) 
250500
real 0m0.073s
user 0m0.069s
sys 0m0.004s


for i in ` seq -f '1704%02g' 1 17` ;do echo -n $i "  " ;mysql -D JSDB   -e "select count(*) from  JIESUANTJ_$i;"|awk 'NR>1' ;done 










本文转自 chengxuyonghu 51CTO博客,原文链接:http://blog.51cto.com/6226001001/1910767,如需转载请自行联系原作者
目录
相关文章
|
4月前
|
网络安全
编译原理复习二:Top-Down分析LL(1)文法的判断与LL(1)分析表的构造(附题目与答案 超详细)
编译原理复习二:Top-Down分析LL(1)文法的判断与LL(1)分析表的构造(附题目与答案 超详细)
78 1
|
25天前
|
C++ 索引
【C++ 泛型编程 高级篇】 C++ 14 模版元编程 遍历元组 编译期生成整数序列 std::index_sequence和std::make_index_sequence 使用指南(二)
【C++ 泛型编程 高级篇】 C++ 14 模版元编程 遍历元组 编译期生成整数序列 std::index_sequence和std::make_index_sequence 使用指南
26 0
|
25天前
|
存储 编译器 程序员
【C++ 泛型编程 高级篇】 C++ 14 模版元编程 遍历元组 编译期生成整数序列 std::index_sequence和std::make_index_sequence 使用指南(一)
【C++ 泛型编程 高级篇】 C++ 14 模版元编程 遍历元组 编译期生成整数序列 std::index_sequence和std::make_index_sequence 使用指南
46 0
|
25天前
|
编解码 算法 程序员
【C++ 泛型编程 高级篇】 C++ 14 模版元编程 遍历元组 编译期生成整数序列 std::index_sequence和std::make_index_sequence 使用指南(三)
【C++ 泛型编程 高级篇】 C++ 14 模版元编程 遍历元组 编译期生成整数序列 std::index_sequence和std::make_index_sequence 使用指南
26 0
|
8月前
|
Python
Python的知识点运用-2(排序&&找差值及修正ts合成顺序)
Python的知识点运用-2(排序&&找差值及修正ts合成顺序)
32 0
|
机器学习/深度学习 移动开发 自然语言处理
经典Seq2Seq与注意力Seq2Seq模型结构详解
经典Seq2Seq与注意力Seq2Seq模型结构详解
175 0
经典Seq2Seq与注意力Seq2Seq模型结构详解
牛客hot100--BM88---判断是否为回文字符串(入门难度)
牛客hot100--BM88---判断是否为回文字符串(入门难度)
75 0
牛客hot100--BM88---判断是否为回文字符串(入门难度)
|
机器学习/深度学习 人工智能 自然语言处理
学习笔记——seq2seq模型介绍
学习笔记——seq2seq模型介绍
206 0
学习笔记——seq2seq模型介绍
ts重点学习19-元组笔记
ts重点学习19-元组笔记
48 0
|
设计模式 索引 Python
如何给列表降维?sum()函数的妙用
1、如果原列表的元素除了列表,还有其它类型的元素,怎么把同类的元素归并在一起呢? 2、如果是一个三维或更高维的列表,怎么更好地把它们压缩成一维列表呢? 3、sum() 函数还有什么知识要点呢?
175 0