awk/vim/shell

1. awk引用shell变量

a、变量为参数传入如$1$2

var_shell=‘$1$2’

var_awk=‘$var_shell’

b、字符串变量

var_shell=“abc”

var_awk=“’$var_shell’”

c、引用-v参数

 awk -v type1=… -v type2=… ‘BEGIN{…}{…}’

eg:

test.dat和test.sh如下 

name    age
zhangsan    10    
lily    18

#!/bin/bash
if [ $# -lt 2 ] ; then
	echo "demo: cat test.dat|sh test.sh 'name'"
	exit 0
fi

name=$1
sex="boy"

awk -v address="Beijing" '{
	name='$name';
	sex="'$sex'";
	age=$2;
	print name"\t"age"\t"sex"\t"address;
}'
 
cat test.dat |sh test.sh '$1' 18
name	age	boy	Beijing
zhangsan	10	boy	Beijing
lily	18	boy	Beijing

2. 压缩&解压命令

.tar.gz

解压:tar -zxvf FileName.tar.gz

压缩:tar zcvf FileName.tar.gz DirName

解压

tar –xvf file.tar //解压 tar

tar -xzvf file.tar.gz //解压tar.gz

tar -xjvf file.tar.bz2   //解压 tar.bz2

tar –xZvf file.tar.Z   //解压tar.Z

unrar e file.rar //解压rar

unzip file.zip //解压zip

3. 时间函数

date +%Y%m%d-%H:%M:%S

date +%F 输出当前日期eg2016-11-16

date -d "-1 day" +%F  输出当前日期前一天 eg:2016-11-15

date +%s 输出当前时间戳

date -d '2013-2-22 22:14’ +%s  指定日期转换为时间戳

date -d @1361542596 时间戳转换为日期

awk  strftime("%F" , 时间戳)


4.cut -d " " -f 1 (以空格切分输出第一个字段)shell命令切分字符串 -d指定分隔符 -f指定字段

5.算数运算如下,符号与数字之间必须用空格分开

echo `expr 2 + 2`
4
6.sort命令


sort -t $'\t' -k2nr

sort -k 1.1,1.0表示从第一列第一个字符到最后一个字符

6 -k选项的具体语法格式

要继续往下深入的话,就不得不来点理论知识。你需要了解-k选项的语法格式,如下:

[ FStart [ .CStart ] ] [ Modifier ] [ , [ FEnd [ .CEnd ] ][ Modifier ] ]

这个语法格式可以被其中的逗号()分为两大部分,Start部分和End部分。

先给你灌输一个思想,那就是如果不设定End部分,那么就认为End被设定为行尾。这个概念很重要的,但往往你不会重视它。

Start部分也由三部分组成,其中的Modifier部分就是我们之前说过的类似nr的选项部分。我们重点说说Start部分的FStartC.Start

C.Start也是可以省略的,省略的话就表示从本域的开头部分开始。之前例子中的-k 2-k 3就是省略了C.Start的例子喽。

FStart.CStart,其中FStart就是表示使用的域,而CStart则表示在FStart域中从第几个字符开始算排序首字符

同理,在End部分中,你可以设定FEnd.CEnd,如果你省略.CEnd,则表示结尾到域尾,即本域的最后一个字符。或者,如果你将CEnd设定为0(),也是表示结尾到域尾


7.crontab

crontab  -l 定时启动

crontab -e 使用编辑器编辑当前的crontab文件 

crontab 的文件格式: 

minutes hour day-of-month month-of-year day-of-week commands


8.其他

split($0,arr,”\t”)

toupper(val)转大写

substr(列,开始字符,截取长度

gsub(/^ +| +$/,"",$0);#去掉首位空格

sed -n ‘line_nump’ file_name输出文件指定行

sed -n ’99p’ file_name

查看所有可卸载软件

rpm -q -a | grep mysql

rpm -e name  卸载name软件

域名和ip同: 修改vi /etc/hosts :ip    域名









  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值