linux的那些骚技能

awk

awk 是处理文本文件的一个应用程序,几乎所有 Linux 系统都自带这个程序。
它依次处理文件的每一行,并读取里面的每一个字段。对于日志、CSV 那样的每行格式相同的文本文件,awk可能是最方便的工具。


基本用法

$awk 动作 文件名              
demo: $awk '{print $0}' demo.txt              print 打印, $0 当前行       上面命令的执行结果,就是把每一行原样打印出来
awk会根据空格和制表符,将每一行分成若干字段,依次用$1、$2、$3代表第一个字段、第二个字段、第三个字段等等。

213:456:789
-F参数指定分隔符为冒号,$1,$2,$3  分别为213 456 789
以上方法常用于执行linux命令 获取想获得的相应值
 

变量

变量NF表示当前行有多少个字段,因此$NF就代表最后一个字段。
$echo 'this is a test' | awk'{print $NF}'        => test
$(NF-1)代表倒数第二个字段。

变量NR表示当前处理的是第几行。

  • FILENAME:当前文件名
  • FS:字段分隔符,默认是空格和制表符。
  • RS:行分隔符,用于分割每一行,默认是换行符。
  • OFS:输出字段的分隔符,用于打印时分隔字段,默认为空格。
  • ORS:输出记录的分隔符,用于打印时分隔记录,默认为换行符。
  • OFMT:数字输出的格式,默认为%.6g。
     

函数
函数toupper()用于将字符转为大写。
$awk-F':''{ print toupper($1) }'demo.txt

  • tolower():字符转为小写。
  • length():返回字符串长度。
  • substr():返回子字符串。
  • sin():正弦。
  • cos():余弦。
  • sqrt():平方根。
  • rand():随机数。

条件

$awk  '条件 动作'   文件名
$awk  -F':''/usr/ {print $1}'   demo.txt

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值