linux替换文件内容 awk,Linux awk替换文本字符串内容

YNJ3Yz.jpeg

awk是功能强大的文本分析工具. 与grep搜索和sed编辑相比,awk在分析数据和生成报告时特别强大. 简而言之,awk逐行读取文件,将每一行切成空格作为默认分隔符,然后对剪切的部分执行各种分析处理.

awk '{pattern + action}' {filenames}

尽管操作可能很复杂,但语法始终是相同的,其中pattern表示AWK在数据中查找的内容awk 替换,而action是在找到匹配内容时执行的一系列命令. 花括号({})不一定总是出现在程序中,而是用于根据特定的模式对一系列指令进行分组. pattern是要表示的正则表达式,用斜杠括起来.

awk语言的最基本功能是根据文件或字符串中的指定规则浏览和提取信息. 在awk提取信息之后,可以执行其他文本操作. 完整的awk脚本通常用于格式化文本文件中的信息. 通常awk 替换,awk作为文件单位处理. Awk接收文件的每一行,然后执行相应的命令来处理文本.

20191224000034453435.png

ARGC               命令行参数个数

ARGV               命令行参数排列

ENVIRON            支持队列中系统环境变量的使用

FILENAME           awk浏览的文件名

FNR                浏览文件的记录数

FS                 设置输入域分隔符,等价于命令行 -F选项

NF                 浏览记录的域的个数

NR                 已读的记录数

OFS                输出域分隔符

ORS                输出记录分隔符

RS                 控制记录分隔符

$0变量是指整条记录。$1表示当前行的第一个域,$2表示当前行的第二个域,......以此类推。

$NF是number finally,表示最后一列的信息,跟变量NF是有区别的,变量NF统计的是每行列的总数 sub(/regexp/, replacement, target)

请注意第三个参数目标,如果省略,请使用$ 0作为参数,即整行文本.

示例1: 替换单个字符串

仅将每行的第一个AAAA替换为BBBB

60c337cf0ebd38371a41717b3915d3a6.png

awk '{ sub(/AAAA/,"BBBB"); print $0 }' t.txt

示例2: 替换所有字符串

用BBBB替换每行中的所有AAAA

awk '{ gsub(/AAAA/,"BBBB"); print $0 }' t.txt

df1c115e6a7098d65407a6b1d4c18a50.png

示例3: 替换满足条件的行字符串

仅在出现字符串CCCC的前提下,用BBBB替换该行中的所有AAAA

awk '/CCCC/ { gsub(/AAAA/,"BBBB"); print $0; next }

{ print $0 }

' t.txt

示例4: 替换多个可选字符串

20191224000033977879.png

是AAAA还是CCCC,请全部替换为BBBB

awk '{ gsub(/AAAA|aaaa/,"BBBB"); print $0 }' t.txt

示例5: 整个单词匹配替换

整个单词匹配AAAA;也就是说,它与AAA和AAAAA(即完整的四个字符串AAAA)不匹配.

awk '{ sub(/\/,"BBBB"); print $0 }' t.txt

示例6: 正则表达式匹配

将所有以A开头的字符串替换为字符B,而不管包含多个A的后续字符串.

本文来自电脑杂谈,转载请注明本文网址:

http://www.pc-fly.com/a/jisuanjixue/article-164138-1.html

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值