自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

杰瑞的专栏

架构师、脚本语言专家;精通Python、Shell、正则表达式;熟悉Java、C、Tcl、Ruby、Scala、Perl等多种编程语言;在性能,开源,自动化测试方面有非常丰富的经验...

原创 Python实现反复执行某个命令的简单处理办法

现实中,会需要反复以需要的时间间隔执行某个命令。 这个时候借助time.sleep和sys.argv提供了一种简单的解决办法。 import time import os import sys def main(cmd, inc=60): while True: os...

2019-03-31 18:52:11 10279 0

原创 sed往指定位置插入变量的小技巧

sed中的常用往后插入的语法,比如往匹配到的行后面添加内容,可以使用-i参数和a参数来往后插入 [root@linux ~#] sed -i '/Pattern/ a\String' FileName 如果要插入的是个变量,则需要将注意两点: 使用双引号来替代单引号 ...

2019-03-31 18:05:31 4319 0

原创 Linux要彻底删除某目录下的所有文件的小技巧

我们都知道,要删除某目录下的文件,可以使用 [root@linux ~] rm -rf /dir/* 但有的时候,上面的命令并不能删除.开头的文件,比如: .swp, .b.log, .a.txt 这个时候,就要借助find组合命令来删除了。 先find,再通过管道传给rm命令来删除: ...

2019-03-31 17:30:46 3959 0

原创 Python中将print中内容定位到文件

当然logging模块完成这种任务,设置消息的级别,根据不同的级别将信息内容定位到文件中。 如果不借助于类似于这种模块,其实print也是可以定位到文件中。 而且Python2和Python3稍微有些差距。 Python2的做法 >>> logfile = open(r&#...

2019-03-31 10:48:51 1381 0

原创 Linux从符合条件的所有文件中过滤出某一行

比如说,要找出/var/log目录下所有.log文件中含error的内容的行,并将其合并到一个文件中。这种场景就很实用,也很常见。 这个时候可以使用一个简单的命令完美的完成这个任务。 [root@linux ~] find /var/log -name '*.log' | ...

2019-03-31 09:48:43 2868 0

原创 Python从列表中找出所有元素索引的几种方法

在列表中使用index方法获取的只是第一个索引,比如想获取列表中的字符'A' >>> lst = ['A', 1, 4, 2, 'A', 3] >>> lst.index('A'...

2019-03-31 09:35:11 13391 1

原创 Python格式化14位时间输出

很多场景中会要求14位时间格式,比如20190331102020,即年月日时分秒拼接在一起的输出。 实现起来也很简单。 当前时间的格式: >>> from datetime import datetime >>> fmt = '%Y%m%d%H%...

2019-03-30 22:26:56 689 1

原创 Python格式化输出数字字符串在随机选号中的应用

现实中经常碰到这种场景,比如数字字符串列表 ['01', '02', '03', '04', '05', '06', '07', '08...

2019-03-30 22:03:10 141 0

原创 Shell中如何删除首行和尾行

在Shell脚本中,要删除首行和尾行,可以使用一条命令很好实现 >>> sed -n '1!P;N;$q;D' FileName

2019-03-13 21:32:41 1834 0

原创 Python轻松实现对英文文章单词总数统计

一篇英文文章,要统计其中单词总数。在Python中可以很轻松的实现,假如英文文章为this.txt,里面的内容就是import this这个彩蛋的内容。 >>> import this The Zen of Python, by Tim Peters ...

2019-03-13 21:13:04 4633 0

原创 Python中按值来获取指定的键

Python字典中的键是唯一的,但不同的键可以对应同样的值,比如说uid,可以是1001。id同样可以是1001。这样的话通过值来获取指定的键,就不止一个!而且也并不太好处理。这里同样提供两种思路来处理。 方法一: >>> dct = {'...

2019-02-24 20:27:55 2344 0

原创 Python中按键来获取指定的值

Python中按键来获取值,相对来说要容易些,毕竟只需要dict[key]就可以找到,但里面同样有个问题,如果其中的键不存在的话,会抛出异常,如果不用try...except...等异常处理机制的话,程序就会中断!这里提供两种很安全,很健壮的处理方法。  方式一: dict[key] + 判断 ...

2019-02-24 20:06:01 4148 0

原创 tr命令在统计英文单词出现频率中的妙用

tr命令我们很清楚,可以删除替换,删除字符串。 在英文中我们要经常会经常统计英文中出现的频率,如果用常规的方法,用设定计算器一个个算比较费事,这个时候使用tr命令,将空格分割替换为换行符,再用tr命令删除掉有的单词后面的点号,逗号,感叹号。先看看要替换的this.txt文件 The Zen o...

2019-02-24 19:42:10 246 0

原创 用join -a1来合并两个文件

要合并以下两个文件,一起合并在一起,合并到1.txt中 # 1.txt Jerry 20 Alice 30 David 40 # 2.txt Jerry man Alice woman David 40 合并的后的1.txt Jerry 20 man Alice 30 woman D...

2019-02-22 22:47:52 245 0

原创 用random.uniform来生成6位的经纬度值

random模块的uniform(x, y)方法,会生成一个介于x,y之间的实数,先来看下该函数的帮助文档  >>> help(random.uniform) Help on method uniform in module random: unif...

2019-02-22 22:14:19 528 0

原创 一次export PATH=/New/Dir的导致的血案

一个同事找我帮他定位,为什么他的LINUX服务器很多的命令都使用不了,提示(command not found),而且更要命的是很多系统服务,脚本都跑不了。问了下,你之前做了些什么操作呢? 他说也做什么操作啊,只不过在/etc/profile文件里面增加了export PATH,又问,你怎么设置的...

2019-02-22 21:38:43 858 0

原创 用expect命令实现登录远端服务器执行简单命令的脚本

很多时候,需要用expect命令实现登录远端服务器执行简单命令,诸如:重启服务器,ftp,ls, scp等命令。 里面涉及到输入密码的交互式场景,这个时候expect命令的巨大功效就出来了,下面是一个比较经典脚本实现: #!/usr/bin/tclsh package require Exp...

2019-02-13 21:36:39 726 0

原创 Python去除字符串前后空格的几种方法

其实如果要去除字符串前后的空格很简单,那就是用strip(),简单方便 >>> ' A BC '.strip() 'A BC' 如果不允许用strip()的方法,也是可以用正则匹配的方法来处理。 &...

2019-02-13 21:18:48 12205 0

原创 Python一个字符串生成器

在做测试的测试,经常会碰到字符串的边界值进行测试,这个时候就需要造数据,比如说要生成只含字母或数字的256位任意字符串,如果一个个输入的话耗时,也很不明智。这个时候其实自己可以写个简单的字符串生成器函数来处理类似的需要。下面是简单的字符串生成器函数: >>&...

2019-02-13 20:58:45 1263 0

原创 Python中三元表达式介绍

要介绍Python的三元表达式,可以先看看其他编程语言比如C,JAVA中应用: public class java { public static void main(String[] args){ int x = 100; int y = 101; int MAX = (x &...

2019-02-12 21:54:09 5947 0

原创 Shell中去除字符串前后空格的方法

经常碰到的场景,需要去除字符串中的前后的空格。在Shell中不像其他语言有strip()来处理,不过也是可以使用诸如awk等命令来处理。 下面是一个简单示例: [root@localhost ~]# echo ' A B C ' | awk '{gsub(/^\s...

2019-01-31 21:40:48 14650 1

原创 Here document在回车键的处理技巧

碰到个实际场景: 挂载了几百块盘,需要对这几百块盘进行格式化处理,进行的都是同一个操作fdisk /dev/sdb,然后输入n,然后连续4个回车键,最后执行w(保存)设置操作。 上面的操作,比如获取所有几百块的硬盘符很好获取,并重定向到disk.txt文件中,这个时候借助于Here documen...

2019-01-31 21:19:08 127 0

原创 awk显示指定行到末尾行之间小技巧

使用awk来显示全部行,可以使用print $0来搞定,如果碰到要显示从第二行到第末尾的话,比如要显示/etc/passwd文件中,从第二列到第末尾的所有行,可以 [root@localhost ~]# cat /etc/passwd | awk -F: 'print $2, $3,...

2019-01-27 22:20:02 3612 1

原创 Shell中在每个命令后添加日期的并定向指定文件的方法

有时候,在Shell脚本中,需要每个命令后添加日期的并定向指定文件,这个时候可以使用下面命令: [root@localhost ~] # vim script.sh #!/bin/bash { pwd | tr '\n' '\t'; date; } &...

2019-01-27 21:51:39 822 0

原创 Python中复制文件的两种简单方式

用Python拷贝文件的方式其实有很多,但个人觉得最简单、最直接的可能是这么两种: 方法一:借助操作系统中本身的拷贝命令 >>> import os >>> os.system("xcopy C:\...

2019-01-22 22:17:33 12956 0

原创 Python字符串通过+和join函数拼接新字符串的性能比较

有一道Python面试题, 以下代码有什么局限性,要如何修改 def strTest(num):     s = 'Hello'     for i in range(num):         s += 'x'     return s 上面的代码其...

2019-01-22 21:49:34 1189 0

原创 Shell中求字符串中单词的个数的几种方法

方法一: [linux@host ~]# echo 'one two three four five' | wc -w 5 方法二: [linux@host ~]# echo 'one two three four five' | awk ...

2019-01-21 21:19:12 1414 0

原创 Python两个字典键同值相加的几种方法

两个字典A = {'a': 1, 'b': 2, 'c': 3}, B = {'b': 4, 'c': 6, 'd': 8} 要合并这两个字典,键值同则相加。 两个字典如果不考...

2019-01-12 22:13:10 9421 0

原创 两个元祖T1=('a', 'b'), T2=('c', 'd'),使用匿名函数将其转变成[{'a': 'c'}, {'b': 'd'}]

一道Python面试题的几种解答: 两个元祖T1=('a', 'b'), T2=('c', 'd'),请使用匿名函数将其转变成[{'a': 'c'}, {'b'...

2019-01-12 21:33:35 228 0

原创 一条命令搞懂read命令中的常用参数

我们知道,在Shell中接收传入的参数有两种方式。一种是通过脚本进行参数传递,另外一种是通过read来接收传入的参数。通过脚本来传递参数的简单示例如下: # 通过脚本来传递,这里$0指脚本名,$1为第一个参数,$2为第二个参数 [root@host ~]# ./script.sh 1 2 T...

2019-01-11 21:42:52 437 0

原创 Shell批量创建指定文件名脚本

假如要在/mydir目录下创建20个文件,文件格式如下: test_abcde_20190108_01.txt     test_bcdef_20190108_02.txt  test_booke_20190108_03.txt  第一个都是test开头,第二个是5位随机小数,第三个是年月日...

2019-01-09 21:59:28 1398 0

原创 Linux设置每个进程打开文件数目

每个进程打开文件数目,默认为1024。要设置这个设置,可以临时性修改,或者永久性修改。临时性修改当次有效,再次登录生效。 永久修改是修改配置文件。 临时性修改 [root@host ~]# ulimit -n 30665 永久性修改 [root@host ~]# vim /etc/s...

2019-01-09 21:28:51 510 0

原创 用egrep的-P参数来匹配日期

我们知道,sed, grep,awk都支持正则表达式,但支持力度显然没有Perl这样语言强。 有的时候如果对字符串来匹配其中的日期,可能会找不到,这个时候使用-P参数可能会收到很好的效果。 比如:10101010222222_a_b_20190108102030_1234.zip这样的文件,前面...

2019-01-09 20:47:46 400 0

原创 Python小进度条显示代码

有的时候程序需要有进度条显示,比如说安装程序、下载文件等场合。 下面有一段小程序可达到效果  程序代码 import time for i in range(0, 101, 2): time.sleep(0.3) num = i // 2 if i == 100: ...

2019-01-05 11:33:10 283 0

原创 Shell中如何获取文件指定行

比如要获取/etc/passwd文件, 要获取其第6-10行,并显示每行的行号。总结一下,方法有很多,行号的显示可以借助cat -n参数,或者sed =来显示。 小结一下,可以有以下方法来获取。  # 1). -n显示行号,tail -n +6显示第6行之后的行,结合head -n 5,获取前...

2019-01-04 21:22:08 5539 0

原创 辗转相除法在求最大公约数的一个妙用

题目: 根据用户输入两个整数m, n; Python写代码求他们的最大公约数。 先来看下一些基本概念,比如什么是最大公约数,什么是辗转相除法。  最大公约数 最大公因数,也称最大公约数、最大公因子,指两个或多个整数共有约数中最大的一个。a,b的最大公约数记为(a, b)。求最大公约数有多种方...

2019-01-02 21:07:39 330 0

原创 DELL服务器如何配置RAID

名词解释 DG(Disk Group)     磁盘组,这里相当于阵列,例如配置了一个RAID5,就是一个磁盘组 VD(Virtual Disk)     虚拟磁盘,虚拟磁盘可以不使用阵列的全部容量,也就是说一个磁盘组可以分为多个VD PD(Physical Disk)  物理磁盘 HS(...

2019-01-01 18:10:28 4911 2

原创 列表中的append,extend,+=,+的区别

先来看列表中的append和extend的帮助文档 >>> help(list.append) # 往列表末尾添加对象 Help on method_descriptor: append(...) L.append(object...

2019-01-01 15:48:58 1508 0

原创 用Python获取本地主机名及IP地址的简单方式

方法一: >>> import socket >>> # 获取主机名 >>> hostname = socket.gethostname() >&...

2018-12-31 20:09:23 2022 0

原创 一道按顺序排列组合题的几种解法

有一道面试题: 一个字符串"Yes", 用代码实现,输出其全部大小写组合, 比如说字符串"no"则输出['no', 'No', 'nO', 'NO'] 想到了如下的几种解法:...

2018-12-30 21:57:54 398 0

提示
确定要删除当前文章?
取消 删除