tee 命令 功能说明:读取标准输入的数据,并将其内容输出成文件。 语 法:tee [-ai][–help][–version][文件…] 补充说明:tee指令会从标准输入设备读取数据,将其内容输出到标准输出设备,同时保存成文件。 参 数: -a或–append 附加到既有文件的后面,而非覆盖它. -i-i或–ignore-interrupts 忽略中断信号。 –help 在线帮助。 –version 显示版本信息。 [root@localhost ~]# who | tee who.out root pts/0 2009-02-17 07:47(123.123.123.123) [root@localhost ~]# cat who.out root pts/0 2009-02-17 07:47(123.123.123.123) [root@localhost ~]# pwd | tee -a who.out /root [root@localhost ~]# cat who.out root pts/0 2009-02-17 07:47(123.123.123.123) /root 随手笔记 2016-12-31 评论 1743 次浏览
停滞了一晚上的expect排错 学习嘛,总是有搞不清楚的时候。 今天晚上我被堵在expect中变量设置的大门前蹲了几小时。。。有些郁闷,就因为手抖了一下,就总是多敲了一个字符“=”,为什么会错在这里,因为我习惯于编程语言的习惯,变量的赋值是会有“=”的,于是我敲了一晚上,改了代码还不够,参数各种修改,整的我都不敢相信自己的眼睛了,我一遍又一遍的比对参考别人的代码,咳咳,几个小时愣是没看出来,我甚至都怀疑我的测试环境有问题…… 不过最后看起来好像还是自己的问题占大部分,终于在我不经意间瞟了一眼,答案就很明了了,我重新敲了一遍,咳咳,流畅无阻。再敲一遍,休息。 随手笔记 2016-12-30 评论 1637 次浏览
date 命令 date命令在脚本编写中常常会遇到,格式多变 date +%Y-%m-%d 是常用的格式 date命令参数说明 date %Y 取四位数年份 date %y 取年份后两位 date %m 月份 mouth date %d 天 day date %H 小时 hour date %M 分钟 min date %S 秒 sec date %s 时间戳 从1970年1月1日0时0分0秒 到当前时间的总秒数 date %F 能实现年月日的格式 date %T 能实现时分秒的格式 date %w 星期几 date %W 一年中的第几周 date -d @时间戳(秒数) 可以进行时间的换算 时间回溯 date -d “-1 day” +%F %T 回到昨天的这一刻 date -d “+1 day” 还可以是 +1 mouth +1 year +1 week -10 min -10 sec ………… 随手笔记 2016-12-29 评论 1623 次浏览
awk初涉 awk是一个相当强大的工具,怎么使用是一门艺术也是技术,有人说过awk的能力是由使用人所掌握的知识决定的。 不瞎扯了,还是回顾一下所学,先巩固一下正则中的一点东西 . 匹配任意一个字符(包含特殊字符) * 匹配前一个字符一次或者任意多次 .* 匹配任意字符任意多次,通常称为贪婪匹配 ? 匹配前面的字符零次或一次,比较严谨的匹配 + 匹配前面的字符一次或多次。 多说一句,+和? 在grep中需要加-E参数或使用egrep,在sed中使用需加-r参数,均为使之支持正则 前方高能,请多留意,先介绍一下awk的几个参数 $0 表示所有域(一行),linux中回车符为$,指定换行使用\n -F 指定定界符,不指定时默认为空格或者tab键 FILENAME 作为参数可以被调用,意为输入awk的文件名 NR 浏览记录的个数(行) NF 浏览记录的域的个数(列) OFS 指定输出的分隔符 awk -F ‘:’ ‘$3==”0″‘ {print$1,$3,$4} 1.txt $3==”0″属于精确匹配,注意等于是两个‘=’,单个则是赋值,也支持表达式 ‘$1~/root/’ 属于泛匹配,只要有‘root’的行都满。 ‘$1=$3+$4’ 属于表达式,输出时$1会被新的值替代。 awk -F ‘:’ ‘$1~/root/’ {OFS “##”; print}1.txt 注:OFS后加分号,不常用 赋值后原结构会发生改变,但可以重新指定分隔符 print 后不跟参数默认为$0 随手笔记 2016-12-28 评论 1685 次浏览
sed中的贪婪匹配 还是拿/etc/passwd练手,虽然我有点不厚道,但是这个文件是个绝好的靶子,罪过罪过,copy谨慎操作。 首先整一个目标文件 cd /tmp for i in `seq 1 3`; do cat /etc/passwd>>./1.txt; done 解释以下,seq作为一个数列 开始进入正题,贪婪匹配,先来上一个例子 sed -n -r ‘s/([^:]+)(:.*:)([^:]+$)/\3\2\1/’ 1.txt -n 仅输出sed处理的行 -r 使sed支持正则 () 小括号的作用是划分字段,第一个字段为开始到第一个冒号前,第二字段为第一个冒号后到最后一个冒号前,第三个字段为最后一个冒号后。 \3\2\1 数字代表第几字段,此处将1/3字段调换位置。 + 匹配前面一个字符一次或者多次,[^:]+此处为匹配非冒号字符一次或者多次 再举一个例子,本来想整个谐音字,但是想了想,还是要正规用词,毕竟我是个有理想有追求的人,哈哈哈 echo abc123abc 使输出为123abc 和123 echo “abc123abc” |sed -r‘s/([a-z]+)([0-9]+)([a-z]+$)/\2\3/’ 123abc echo “abc1223abc” |sed -r‘s/([^0-9]+)([0-9]+)([^0-9]+$)/\2\3/’ 123 随手笔记 2016-12-25 评论 1752 次浏览
xargs 命令 xargs 命令时给其他命令传递参数的一个过滤器,也是组合多个命令的工具,能将标准输入数据转换成为命令行参数。 能够处理管道或者stdin并将其转换成特定的命令参数 能将单行或者多行输入转换成为其他格式,例如单行变多行,多行变单行。 xargs 的默认命令是echo,默认定界符是空格 也就是说,通过管道传递给xargs的输入将会包含换行和空白 通过xargs的处理,换行和空白会被空格取代 xargs 是构建单行命令的重要组件之一。 参数: -n 定义多行输出 -n3 以分界符为边界,拆分为3个一行输出 -d 定义分界符 -d ‘:’ 以冒号作为分界符 -I 指定一个替换字符串{} ,这个字符会在xargs扩展时被替换掉,当-I与xargs结合使用时,每一个参数命令都会被执行一次。 随手笔记 2016-12-24 评论 1825 次浏览