linux:文件替换的三种方式sed、awk、perl

这篇具有很好参考价值的文章主要介绍了linux:文件替换的三种方式sed、awk、perl。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

背景

linux 文件内容替换,网上看了下大致就这三种 sed、awk、perl,今天挨个使用一下看看怎么样

sed

语法

Linux sed 命令是利用脚本来处理文本文件。详细文档

sed [-hnV][-e<script>][-f<script文件>][文本文件]

搭配 find 可以对文件夹进行查找替换:
find ./ -name "*.js" | xargs sed -i '' 's/aaa/hhh/g'

问题

一般在 linux 上该命令就可以生效。

sed -i 's/aaa/hhh/g' index.js

但是我尝试后报错 command i expects \ followed by text,原因是在Mac上,sed来自BSD,与典型的Linux机器上的sed略有不同。
linux:文件替换的三种方式sed、awk、perl
解决这个问题有两种方式:

1、加个空字符串

linux:文件替换的三种方式sed、awk、perl

sed -i '' 's/aaa/hhh/g' index.js

在 mac 上,需要加字符串
这里的空字符串是备份文件后缀的意思,比如你填写

sed -i '.source' 's/aaa/hhh/g' index.js

linux:文件替换的三种方式sed、awk、perl

2、下载gnu-sed

brew install gnu-sed

awk

AWK 是一种处理文本文件的语言,是一个强大的文本分析工具。

语法

awk [选项参数] 'script' var=value file(s)

详细文档

举例

awk '{ sub(/aaa/,"hhh"); print $0 }' index.js

linux:文件替换的三种方式sed、awk、perl
可以看出,确实把 aaa 改为 hhh 了,但是只是打印输出,没有修改源文件,那么如何改呢?使用 >

linux 中 > 就是把写入内容的意思,>> 是内容追加的意思,可以看这篇

awk '{ sub(/aaa/,"hhh"); print $0 > "index.js" }' index.js

linux:文件替换的三种方式sed、awk、perl
这样就可以正常替换了

perl

perl 是一种编程语言,linux 上自带了该语言。详细文档
Perl 借用了C、sed、awk、shell脚本以及很多其他编程语言的特性,语法与这些语言有些类似,也有自己的特点。
linux:文件替换的三种方式sed、awk、perl

语法

  • -p 告诉Perl对后面添加的文件名参数进行遍历,大致和sed中的这段代码效果类似
  • -i 大致是用来读取文件时进行备份操作。
  • -e 告诉Perl后面跟上perl语句
  • -p和-i可以合在一起-pi,-p -e也可以何在一起,但是-i,-e不能合在一起写-ie。

示例

perl -pi -e 's|aaa|hhh|g' index.js

linux:文件替换的三种方式sed、awk、perl
替换并生成备份

perl -pi.source -e 's|aaa|hhh|g' index.js

linux:文件替换的三种方式sed、awk、perl

find ./ -name "*.js" | xargs perl -pi -e 's|aaa|hhh|g'

linux:文件替换的三种方式sed、awk、perl

总结

  • sed – 当你需要对文件进行简单的文本转换。
  • awk – 当你只需要简单的格式化和汇总或转换数据。
  • perl – 几乎任何任务,但特别是当任务需要复杂的正则表达式时。
  • python – 对于可以使用Perl的相同任务。

sed 是一个编辑器(命令行)
awk 是一个文本处理工具(命令行)
shell、perl、python 是编程语言

以上的 / 和 | 都可以使用,例如 ‘s/aaa/hhh/g’,‘s|aaa|hhh|g’文章来源地址https://www.toymoban.com/news/detail-438576.html

到了这里,关于linux:文件替换的三种方式sed、awk、perl的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Linux文本三剑客---grep、sed、awk

    awk、grep、sed是linux操作文本的三大利器,三者的功能都是处理文本,但侧重点各不相同,其中属awk功能最强大,但也最复杂。grep更适合单纯的查找或匹配文本,sed更适合编辑匹配到的文本,awk更适合格式化文本,对文本进行较复杂格式处理。 1、grep 1.1 命令格式 1.2命令功能

    2024年02月14日
    浏览(34)
  • linux命令三剑客grep、sed、awk

    准备 grep、sed、awk号称\\\"linux三剑客\\\",使用频繁,功能强大,本文通过一个实例演示下基本用法。首先准备一个文本文件,命名为text.txt,写入文件内容: grep 首先,最简单的是grep。经常用来过滤查看日志。对于grep需要知道如下几个常用的命令选项: -n: 额外输出行号。例如过

    2024年02月05日
    浏览(59)
  • Java创建文件的三种方式

    内容来自于韩顺平学Java 在学习其视频下跟着编写 文件创建成功

    2024年04月11日
    浏览(52)
  • Linux学习之sed、awk和vim的差异

    sed 、 awk 和 vim 都是编辑器,区别如下: vim 是交互式,需要跟用户进行互动,而 sed 和 awk 是非交互式,只需要写好命令,不用跟用户进行互动就可以完成任务。 vim 是文本编辑器,操作的时候会对整个文件编辑,而 sed 和 awk 都是行编辑器,进行操作的时候就是一行一行进行

    2024年02月14日
    浏览(30)
  • Linux安装软件的三种方式

    Linux安装软件的三种方式分别为: rpm yum在线安装 解压缩 概述:RPM(RedHat Package Manager),RedHat软件包管理工具,类似windows里面的setup.exe,是Linux这系列操作系统里面的打包安装工具,它虽然是RedHat的标志,但理念是通用的。 RPM包的名称格式 Apache-1.3.23-11.i386.rpm “apache” 软件

    2024年02月06日
    浏览(32)
  • Linux 文本处理三剑客:grep、sed 和 awk

    awk、grep、sed是linux操作文本的三大利器,合称文本三剑客,也是必须掌握的linux命令之一。三者的功能都是处理文本,但侧重点各不相同,其中属awk功能最强大,但也最复杂。grep更适合单纯的查找或匹配文本,sed更适合编辑匹配到的文本,awk更适合格式化文本,对文本进行较

    2024年01月17日
    浏览(40)
  • Linux中字符处理三剑客(grep sed awk )

    在 Linux 系统中,字符处理流程可以利用三个常用的工具来完成,三剑客的具体说明如下: grep:grep 是一种强大的文本搜索工具,可以搜索文件内容中包含指定文本的行,并打印出包含该文本的行。grep 命令通常用于搜索日志文件、配置文件等。 在Linux中,\\\"grep\\\"是一种文本搜索

    2024年02月08日
    浏览(32)
  • Linux开机自启的三种方式

    1、 在/etc/rc.local文件中添加自启动命令   ​​​​​​​2、 在/etc/init.d目录下添加自启动脚本 Linux开机的时候,会加载运行/etc/init.d目录下的程序,因此我们可以把想要自动运行的脚本放到这个目录下即可。系统服务的启动就是通过这种方式实现的。 PS:添加完后务必设置文

    2024年02月12日
    浏览(24)
  • python生成excel文件的三种方式

    在我们做平常工作中都会遇到操作excel,那么今天写一篇,如何通过python操作excel。当然python操作excel的库有很多,比如pandas,xlwt/xlrd,openpyxl等,每个库都有不同的区别,具体的区别,大家一起来看看吧~ xlrd是对于Excel进行读取,xlrd 操作的是xls/xlxs格式的excel xlwt是对于Excel进

    2024年02月15日
    浏览(29)
  • Linux三剑客grep、sed、awk(包括练习题)

    Linux grep (global regular expression) 命令用于查找文件里符合条件的字符串或正则表达式。 基本用法与常见的正则表达式 扩展正则表达式实践 此处使用grep -E 进行实践扩展正则,egrep官网已经弃用 注意:sed和awk使用单引号,双引号有特殊解释 sed是Stream Editor(字符流编辑器)的缩写

    2024年02月11日
    浏览(28)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包