分类: Python/Ruby
2011-11-11 20:13:17
seq
-f, --format=FORMAT use printf style floating-point FORMAT (default: %g)
-s, --separator=STRING use STRING to separate numbers (default: \n)
-w, --equal-width equalize width by padding with leading zeroes
-f 选项 指定格式
#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一起用
seq -w -f"str%03g" 9 11
seq: format string may not be specified when printing equal width strings
seq -w 98 101
098
099
100
101
输出是同宽的
-s 指定分隔符 默认是回车
#seq -s" " -f"str%03g" 9 11
str009 str010 str011
要指定\t 做为分隔符号
#seq -s"`echo -e "\t"`" 9 11
指定\n\n作为分隔符号
#seq -s"`echo -e "\n\n"`" 9 11
19293949596979899910911
得到的是个错误结果
不过一般也没有这个必要 它默认的就是回车作为分隔符
几个例子
awk 'BEGIN { while (num seq 是Linux 中一個預設的外部命令,一般用作一堆數字的簡化寫法,如
seq 1 10
便會出現
1
2
3
4
5
6
7
8
9
10
它還有三個選項
-f, --format=FORMAT use printf style floating-point FORMAT (default: %g)
-s, --separator=STRING use STRING to separate numbers (default: \n)
-w, --equal-width equalize width by padding with leading zeroes
-f 最常用 , 例如一次制做 10 個名 dir001 , dir002 .. dir010 的目錄,它便很有用途,我們可以
這樣下一個命令便可了
#seq -f 'dir%03g' 1 10 | xargs mkdir
或
#mkdir $(seq -f 'dir%03g' 1 10)
它用的是 printf 的格式 , %03g' 代表以三位浮點數,以此方法,如用bash3 的 printf
也可作為等價命令
#printf 'dir%03d\n' {1..10} | xargs mkdir 或 mkdir `printf 'dir%03d ' {1..10}`
记两条命令:
find -print |sed 's;./A001.txt; ;'|sed 's/^/rm /'|sh -x
seq -f'A%03g.txt' 1 100 |xargs rm -rf
sed 后边的分界符,默认为"/",可以使用其它的分界符,awk需要用-F 来指定,sed不需要指定,直接写就可以了,