zoukankan      html  css  js  c++  java
  • Linux常用基本命令:三剑客命令之-awk输入输出分隔符

    输入分隔符,英文原文为field separator,此处简称为FS,默认是空白字符(即空格),awk默认以空白字符为分隔符对每一行进行分割。

    输出分割符,英文原文为output field separator,此处简称为OFS,awk将每行分割后,输出在屏幕上的时候,awk默认的输出分割符也是空格。

    1,用F选项,指定输入分隔符

    ghostwu@dev:~/linux/awk$ cat ghostwu.txt 
    ghostwu-20-man
    zhangsan-22-woman
    lisi-23-woman
    ghostwu@dev:~/linux/awk$ awk '{print $1, $2, $3}' ghostwu.txt 
    ghostwu-20-man  
    zhangsan-22-woman  
    lisi-23-woman 

    如果不指定分隔符,默认用空格,是不能切割ghostwu-20-man 这一行的 每一列的

    ghostwu@dev:~/linux/awk$ awk -F- '{print $1, $2, $3}' ghostwu.txt 
    ghostwu 20 man
    zhangsan 22 woman
    lisi 23 woman

    F指定'-'为分隔符,同理,先利用sed把ghostwu.txt分割符变成#,然后再用awk的F选项指定分隔符#来进行切割

    ghostwu@dev:~/linux/awk$ sed -i 's/-/#/g' ghostwu.txt 
    ghostwu@dev:~/linux/awk$ cat ghostwu.txt 
    ghostwu#20#man
    zhangsan#22#woman
    lisi#23#woman
    ghostwu@dev:~/linux/awk$ awk -F# '{print $1, $2, $3}' ghostwu.txt 
    ghostwu 20 man
    zhangsan 22 woman
    lisi 23 woman

    也可以使用内置变量FS 配合-v选项指定输入分隔符

    ghostwu@dev:~/linux/awk$ awk -v FS='#' '{print $1, $2, $3}' ghostwu.txt 
    ghostwu 20 man
    zhangsan 22 woman
    lisi 23 woman

    而-F,就是options的一种,用于指定输入分隔符。

    -v也是options的一种,用于设置变量的值。

    2,使用OFS指定输出分隔符,OFS是内置变量,配合v选项一起使用

    ghostwu@dev:~/linux/awk$ cat ghostwu.txt 
    ghostwu#20#man
    zhangsan#22#woman
    lisi#23#woman
    ghostwu@dev:~/linux/awk$ awk -v FS='#' '{print $1, $2, $3}' ghostwu.txt 
    ghostwu 20 man
    zhangsan 22 woman
    lisi 23 woman
    ghostwu@dev:~/linux/awk$ awk -v FS='#' -v OFS='--->' '{print $1, $2, $3}' ghostwu.txt 
    ghostwu--->20--->man
    zhangsan--->22--->woman
    lisi--->23--->woman

    注意的在输出列的时候,列与列之间要用逗号,如果不用逗号,就变成连接在一起输出

    ghostwu@dev:~/linux/awk$ awk -v FS='#' -v OFS='--->' '{print $1 $2 $3}' ghostwu.txt 
    ghostwu20man
    zhangsan22woman
    lisi23woman
    ghostwu@dev:~/linux/awk$ 
  • 相关阅读:
    在App_Data中创建数据库获取连接串简便方法!
    ObjectDataSource配合存储过程(采用数据集)的使用(删除可以解决,但是编辑出错好像它的方法也无法解决
    金鹰dreamweaver视频教程下载地址
    ASP.NET里创建Microsoft Word文档
    net3:Calendar控件的使用
    vs2005做的留言本——天轰川下载
    Wiley出版 SQL Server 2005宝典
    ADO:防止更新的数据含有单引号而出错
    用 Bitcron 搭博客:你只管写作,它负责呈现
    如何去掉Myeclipse对JS等文件的验证
  • 原文地址:https://www.cnblogs.com/ghostwu/p/9080893.html
Copyright © 2011-2022 走看看