awk使用方法
博客专区 > luckwsm 的博客 > 博客详情
awk使用方法
luckwsm 发表于10个月前
awk使用方法
  • 发表于 10个月前
  • 阅读 2
  • 收藏 0
  • 点赞 0
  • 评论 0

腾讯云 十分钟定制你的第一个小程序>>>   

     用于在linux/unix下对文本和linux/unix下的一个强大编程工具。它在命令行中使用,但更多是作为脚本来使用。awk的处理文本和数据的方式是这样的,它逐行扫描文件,从第一行到最后一行,寻找匹配的特定模式的行,并在这些行上进行你想要的操作。如果没有指定处理动作,则把匹配的行显示到标准输出(屏幕),如果没有指定模式,则所有被操作所指定的行都被处理。

语法:

awk '{pattern + action}' {filenames}

常用的选项有:

  • -F fs   fs指定输入分隔符,默认为空格,如-F ‘:’
  • -v var=value 赋值一个用户定义变量,将外部变量传递给awk

awk内置变量:

  • $n 当前记录的第n个字段,比如n为1表示第一个字段,n为2表示第二个字段。
  • $0 这个变量包含执行过程中当前行的文本内容。  
  • FILENAME 当前输入文件的名。
  • FS 字段分隔符(默认是任何空格)。
  • NF 表示字段数,在执行过程中对应于当前的字段数。
  • NR 表示记录数,在执行过程中对应于当前的行号。
  • OFMT 数字的输出格式(默认值是%.6g)。
  • OFS 输出字段分隔符(默认值是一个空格)。
  • ORS 输出记录分隔符(默认值是一个换行符)。
  • RS 记录分隔符(默认是一个换行符)。

示例:

以ll命令为输入值,如下图所示

[root@app_new luffy]# ll
total 570200
drwxr-xr-x. 2 root root     4096 Dec  1 07:20 conf
-rw-r--r--. 1 root root     1619 Dec  9 05:58 filebeat_app.yml
-rw-r--r--. 1 root root     1138 Dec  9 05:59 filebeat_game.yml
-rw-r--r--. 1 root root      283 Dec  9 07:49 gamecenter_any.yaml
-rw-r--r--. 1 root root      205 Dec  9 07:50 gamecenterlog.pattern
-rw-r--r--. 1 root root 25416664 Dec  9 11:25 HITV_AppStoreApi-5.3.1-2.x86_64.rpm
-rw-r--r--. 1 root root 50561808 Dec  5 13:18 HITV_GameCenter-2.7.1-2.x86_64.rpm
-rw-r--r--. 1 root root 50561964 Dec  6 01:31 HITV_GameCenter-2.7.1-3.x86_64.rpm
-rw-r--r--. 1 root root 50562716 Dec 12 07:46 HITV_GameCenter-2.7.1-4.x86_64.rpm
-rw-r--r--. 1 root root 13194608 Dec  5 12:48 HITV_GCCListener-2.7.1-2.x86_64.rpm
-rw-r--r--. 1 root root 13194960 Dec  9 11:12 HITV_GCCListener-2.7.1-3.x86_64.rpm

提取文件的大小:

[root@app_new luffy]# ll |awk '{print$5}'

4096
1619
1138
283
205
25416664
50561808
50561964
50562716
13194608
13194960

若想看文件名及文件大小:

[root@app_new luffy]# ll |awk '{print $9 "\t" $5}'
conf    4096
filebeat_app.yml        1619
filebeat_game.yml       1138
gamecenter_any.yaml     283
gamecenterlog.pattern   205
HITV_AppStoreApi-5.3.1-2.x86_64.rpm     25416664
HITV_GameCenter-2.7.1-2.x86_64.rpm      50561808
HITV_GameCenter-2.7.1-3.x86_64.rpm      50561964
HITV_GameCenter-2.7.1-4.x86_64.rpm      50562716
HITV_GCCListener-2.7.1-2.x86_64.rpm     13194608
HITV_GCCListener-2.7.1-3.x86_64.rpm     13194960

 

标签: Linux 命令
共有 人打赏支持
粉丝 0
博文 6
码字总数 4302
×
luckwsm
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: