zoukankan      html  css  js  c++  java
  • awk 一 文本处理工具

    简介

    awk 是逐行扫描文件(从第1行到最后一行),寻找含有目标文本的行:
    	如果匹配成功,则会在该行上执行用户想要的操作。
    	反之,则不对行做任何处理。
    
    awk 命令的基本格式为:
    	awk [选项] '脚本命令' 文件名
    

    awk 选项

    -F';'
    	指定以 ; 作为输入行的分隔符,awk 命令默认分隔符为空格或制表符。
    
    -f file
    	从脚本文件中读取 awk 脚本指令,以取代直接在命令行中输入指令。
    
    -v var=val
    	在执行处理过程之前,设置一个变量 var,并给其设备初始值为 val。
    

    基本使用

    awk 的强大之处在于脚本命令,它由2部分组成,分别为匹配规则和执行命令,如下所示:
    	'匹配规则{执行命令}'
    
    匹配规则,可以使用字符串(比如 /demo/,表示查看含有 demo 字符串的行)或者正则表达式指定。
    
    另外需要注意的是,整个脚本命令是用单引号 '' 括起,而其中的执行命令部分需要用大括号 {} 括起来。
    
    在 awk 程序执行时,如果没有指定执行命令,则默认会把匹配的行输出;
    如果不指定匹配规则,则默认匹配文本中所有的行。
    
    
    awk -F',' '{print $1 "	" $2}' ld
    	以,分割,匹配所有文本,打印第一列和第二列,中间以制表符分割。
    
    awk -F',' '{print $1 , $2}' ld
    	以,分割,匹配所有文本,打印第一列和第二列,中间以空格分割(,打印以空格分割)。
    
    awk 'BEGIN{print "666"} END{print "8888"}' ld
    	在开头和结尾打印666和8888。
    
    awk -F',' '/12[1]/{print $1 "	" $2}' ld
    	匹配到的行才打印。
    
    awk 'END{print NR}' filename
    	打印文本文件的总行数
    
    awk 'NR==1{print}' filename
    	打印文本第一行
    
  • 相关阅读:
    Anaconda+用conda创建python虚拟环境
    Linux安装matlab及简单操作
    Matlab2016b 版本knnclassify函数在Matlab2019b的替换及解决方案
    WIN TO GO实现win10系统迁移
    ArcMap高版本文件保存成低版本
    matlab 保存大于2GB数据
    Tensorflow_gpu + anconda3_3.4.2 +keras2.1.1 + CUDA8.0+CUDNN5.1
    B
    A
    POJ I Think I Need a Houseboat
  • 原文地址:https://www.cnblogs.com/loveer/p/11622194.html
Copyright © 2011-2022 走看看