awk RS,gensub

本文介绍如何利用awk命令处理一种特殊格式的文本文件,该文件以abc作为记录分隔符,并通过gensub函数移除记录间的换行符,实现文本的连续输出。文章详细解释了命令选项及参数的作用,并对比了不同命令选项下输出结果的变化。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

文件file

abc$qwe$rt

yu$

1245$

abc$qwe$rtyu$1234&

abc$qwe$

5667

$899900$

abc$qwe$rtyu$12

34$

要求处理以后变成下面的样子

abc$qwe$rtyu$1245$

abc$qwe$rtyu$1234&

abc$qwe$5667$899900$

abc$qwe$rtyu$1234$

处理方式为:

awk -vRS=”abc” ‘NF{print RS gensub(“\n”,””,”g”)}’ file

解释说明:

-v:定义一个变量叫做RS,其中RS的内容为abcgensub的意思为将\n换行符全部用空替换掉,其中g表示的为全部的意思。最前面的NF的意思为剔除掉空行的行不进行输出,其中的空行包括空格,tab,以及只包含记录分隔符的行。

所以如果我们将文本按照下面的方式进行处理的话

awk -vRS=”abc” ‘{print RS gensub(“\n”,””,”g”)}’ file-------------------------->去掉NF

这时候第一条记录只时候只剩下的是abc,作为记录的分隔符,输出的时候会按照空行进行显示。

abc

abc$qwe$rtyu$1245$

abc$qwe$rtyu$1234&

abc$qwe$5667$899900$

abc$qwe$rtyu$1234$

最上面会显示一个abc,因为空行记录加上RS这时候会输出位第一行。


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值