Команда Linux --awk

содержание

 

1. Введение

2. Основные параметры

В-третьих, значение символов в awk

Четыре, форматированный вывод


1. Введение

Awk - это мощный инструмент для анализа текста. По сравнению с поиском с помощью grep и редактированием sed, awk особенно эффективен, когда он анализирует данные и создает отчеты. Проще говоря, awk читает файл построчно.По умолчанию каждая строка нарезается пробелом в качестве разделителя, а вырезанная часть подвергается различному анализу и обработке. Awk - это линейный процессор. По сравнению с преимуществами обработки экрана, при обработке больших файлов не будет проблем с переполнением памяти или медленной обработкой. Обычно он используется для форматирования текстовой информации.

2. Основные параметры

параметр awk 'BEGIN {} // {действие1; действие2} END {}' имя файла

-F   指定分隔符
-f    调用脚本
-v   定义变量
Begin{}    初始化代码块,在对每一行进行处理之前,初始化代码,主要是引用全局变量,设置FS分隔符
//            匹配代码块,可以是字符串或正则表达式
{}            命令代码块,包含一条或多条命令,多条命令用 ;  隔开
END{}      结尾代码块,在对每一行进行处理之后再执行的代码块,主要是进行最终计算或输出结尾摘要信息

В-третьих, значение символов в awk

  • $0           表示整个当前行
    $1           每行第一个字段
    NF          字段数量变量
    NR          每行的记录号,多文件记录递增
    FNR        与NR类似,不过多文件记录不递增,每个文件都从1开始
    \t            制表符
    \n           换行符
    FS          BEGIN时定义分隔符
    RS         输入的记录分隔符, 默认为换行符(即文本是按一行一行输入)
    ~            包含
    !~           不包含
    ==         等于,必须全部相等,精确比较
    !=           不等于,精确比较
    &&         逻辑与
    ||             逻辑或
    +            匹配时表示1个或1个以上
    /[0-9][0-9]+/     两个或两个以上数字
    /[0-9][0-9]*/     一个或一个以上数字
    OFS         输出字段分隔符, 默认也是空格,可以改为其他的
    ORS        输出的记录分隔符,默认为换行符,即处理结果也是一行一行输出到屏幕
    -F  [:#/]    定义了三个分隔符

    Четыре, форматированный вывод

awk  '{printf  "%-5s %.2d",$1,$2}'  test

printf 表示格式输出
%格式化输出分隔符
-5表示长度为5个字符
s表示字符串类型,d表示小数

 

рекомендация

отblog.csdn.net/xiao__jia__jia/article/details/113788890