`
sunlujing
  • 浏览: 180073 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

awk FS RS 的妙用

阅读更多

完成的功能:

有一个文件格式如下:

2401:b400:20::/48

2401:b400:21::/48

 

2001:250:4000::/48

2001:da8:8f00::/48

 

2001:250:3000::/48

 

使用空行分割成25部分,比如第一部分代表一个AS的前缀IP地址

另外一个文件:

BJ_Tsinghua

WuHan

GuangZhou

NanJing

一共25行,每一行对应文件1 中的一个部分,现在的需求是要在文件1中加入 这个前缀 达到效果如下:

2401:b400:20::/48    BJ_Tsinghua

2401:b400:21::/48    BJ_Tsinghua

 

2001:250:4000::/48   WuHan

2001:da8:8f00::/48   WuHan

 

2001:250:3000::/48  GuangZhou

 

我实现的方法是使用awk 的FS和RS。

首先使用RS=“” (以空行切分记录) 作为 读取记录的分隔符,那么awk 每次就会读入一个分块了,而不是默认的一行。FS 使用\n 这样就可以对读取的分块 按行划分。

代码如下所示:主要有两个参数,index 代表是第几个分块,prefix代表是相应的前缀;

ps: 我是越来越喜欢shell 脚本了。

 

function addPrefix(){

   index=$1;

   prefix=$2;

 

   cat prefix.conf |awk -v pre=$prefix -v id=$index 'BEGIN{FS="\n";RS=""}(NR==id){for(i=1;i<=NF;i++){print $i"\t"pre}}' 

}

 

i=1

while read line;

do

addPrefix $i $line

let i=i+1

echo -e "\n"

done < name.conf

 

 

 

1
0
分享到:
评论

相关推荐

    AWK中FNR和NR,OFS和FS,RS和ORS.txt

    在深入探讨AWK中FNR和NR,OFS和FS,RS和ORS这些核心概念之前,我们先简要回顾一下AWK的基本功能。AWK是一种强大的文本处理工具,主要用于模式扫描与处理语言,广泛应用于数据处理、报告生成、格式转换等场景。其核心...

    LINUX中详解AWK内建变量FS,NF,NR,RT,RS,ORS,OFS

    ### Linux中AWK内建变量FS、NF、NR、RT、RS、ORS、OFS详解 #### 一、概述 AWK是一种强大的文本处理工具,主要用于格式化文本数据,广泛应用于Linux/Unix环境中。它拥有丰富的内置变量和函数,使得用户能够方便地...

    awk中RS、ORS、FS、OFS的区别和联系小结

    在awk编程语言中,RS(Record Separator)、ORS(Output Record Separator)、FS(Field Separator)和OFS(Output Field Separator)是四个重要的变量,它们分别用于处理输入和输出的数据分割。以下是对这些变量的...

    awk详细用法小结awk awk

    - `RS`:记录分隔符,默认为换行符。 - `RSTART`:匹配起始位置,当使用match函数时有效。 - `SUBSEP`:子字段分隔符,默认为`\034`。 #### 五、awk运算符 awk支持多种运算符,包括算术运算符、赋值运算符、比较...

    awk入门到精通.pdf

    例如,利用内建变量RS(记录分隔符)和FS(字段分隔符),awk可以针对不同的数据格式进行定制化的处理。这使得awk特别适合于处理CSV、TSV或其他结构化的文本数据。 由于awk的这些特点,它被广泛用于编写各种小型...

    awk教程入门到精通

    内置变量包括 NR、NF、FS、RS 等,它们分别表示记录号、字段数、字段分隔符和记录分隔符。用户定义变量可以使用赋值语句来定义。 awk 的函数 awk 有多种函数,包括数学函数、字符串函数、时间函数等。数学函数包括...

    AWK AWK 详细使用文档

    - **字段处理**:在AWK中,可以使用内置的字段分割符`FS`来指定如何分割记录中的字段。默认情况下,任何空白字符都会被当作字段分隔符。 - **示例**:假设有一行文本“John Doe,30,New York”,可以使用`,`作为字段...

    awk知识文档学习

    - **字段分隔符**: Awk使用内置变量FS(Field Separator)来确定字段的分隔符,默认为空格和制表符。 - **记录分隔符**: RS(Record Separator)用来指定记录的分隔符,默认为换行符。 ### 5. 格式化输出 Awk提供...

    unix awk 视频教程

    视频教程可能还会涉及一些高级主题,如数组的使用、多行模式匹配、重定义字段分隔符、自定义记录分离符(RS)和字段分离符(FS),以及如何编写可读性好、易于维护的`awk`脚本。 通过`18.-.Awk[www.TopSage.com]....

    Awk入门教程 《Awk A Tutorial and Introduction - by Bruce Barnett》

    FS - The Input Field Separator Variable OFS - The Output Field Separator Variable NF - The Number of Fields Variable NR - The Number of Records Variable RS - The Record Separator Variable ORS - ...

    awk程序设计语言

    awk程序的运行涉及到几个核心概念,比如字段分隔符(FS)、记录分隔符(RS)、字段变量($1、$2、...、$NF)等。字段变量表示输入数据的各个字段,其中$1是第一个字段,$NF是最后一个字段,NF是字段的总数。awk提供...

    linux-awklinux-awk

    ### Linux Awk 学习指南 #### 1. Awk 简介 Awk 是一种专门设计用于处理文本和数据的编程语言,主要用于 Linux/Unix 操作系统中。它可以处理来自标准输入、一个或多个文件,甚至是其他命令的输出结果。Awk 支持高级...

    awk教程所速度

    awk的内置变量,如FS和OFS分别代表输入和输出的字段分隔符,NF和NR分别代表当前输入行中的字段数量和记录数量,RS和ORS分别是输入和输出的记录分隔符。 在执行awk脚本时,一般需要指定一个shell环境。awk支持多种...

    awk用法__都是例子

    awk 'BEGIN {FS="[: \t|]"} {print $1,$2,$3}' file 通过设置输入分隔符(FS="[: \t|]")修改输入分隔符。 示例 5:从文件中读取awk命令 awk -f awkfile file 通过文件 awkfile 的内容依次进行控制。 示例 6:...

    linux中shell脚本中awk的深入分析

    * split(s, a, fs):把 s 用 fs 分割,显示在 a 数组里 * sprint(fmt, exp):返回经 fmt 格式化的 exp awk 的函数 awk 还提供了多种函数,用于实现复杂的数据处理和分析。这些函数包括: * printf(fmt, exp):...

    awk学习手册.docx

    awk提供了一些内置的环境变量,如`NR`(已读取的记录数)、`NF`(当前记录的域数)、`FS`(字段分隔符,默认为空格或制表符)等,这些变量可以帮助我们处理数据。 5. **awk 运算符** awk支持多种运算符,包括比较...

    awk 工具用法说明

    - **FS**: 输入字段分隔符,默认为空格或制表符。 - **RS**: 记录分隔符,默认为换行符。 - **NF**: 当前行中的字段数量。 - **NR**: 已经读取的行数。 - **OFS**: 输出字段分隔符,默认为空格。 - **ORS**: 输出...

Global site tag (gtag.js) - Google Analytics