广告
返回顶部
首页 > 资讯 > 后端开发 > GO >用golang如何替换某个文件中的字符串
  • 508
分享到

用golang如何替换某个文件中的字符串

2024-04-02 19:04:59 508人浏览 独家记忆
摘要

用golang实现了某个文件中字符的替换,替换为按行替换,执行后会生成新文件,如a.txt,执行后生成a.txt.mdf。新文件即修改后的内容。 主要用来练习文件的读取与写入 p

golang实现了某个文件中字符的替换,替换为按行替换,执行后会生成新文件,如a.txt,执行后生成a.txt.mdf。新文件即修改后的内容。

主要用来练习文件的读取与写入


package main 
import (
	"bufio"
	"fmt"
	"io"
	"os"
	"strings"
)
 
func main() {
	if len(os.Args) != 4 {
		fmt.Println("lack of config file, eg: Go run main.go ${path_of_file} ${old_string} ${new_string}")
		os.Exit(-1)
	}
	fileName := os.Args[1]
	in, err := os.Open(fileName)
	if err != nil {
		fmt.Println("open file fail:", err)
		os.Exit(-1)
	}
	defer in.Close()
 
	out, err := os.OpenFile(fileName+".mdf", os.O_RDWR|os.O_CREATE, 0766)
	if err != nil {
		fmt.Println("Open write file fail:", err)
		os.Exit(-1)
	}
	defer out.Close()
 
	br := bufio.NewReader(in)
	index := 1
	for {
		line, _, err := br.ReadLine()
		if err == io.EOF {
			break
		}
		if err != nil {
			fmt.Println("read err:", err)
			os.Exit(-1)
		}
		newLine := strings.Replace(string(line), os.Args[2], os.Args[3], -1)
		_, err = out.WriteString(newLine + "\n")
		if err != nil {
			fmt.Println("write to file fail:", err)
			os.Exit(-1)
		}
		fmt.Println("done ", index)
		index++
	}
	fmt.Println("FINISH!")
}

执行结果:

源文件:

将空格替换为逗号:

新文件:

补充:golang关于字符串替换的建议

运行下面一段代码


package main
import (
 "fmt"
 "regexp"
)
func main() {
 tmp := "/Users/max/Downloads/test/WEBsite\\nbackup\n"
 buf := []byte(tmp)
 a := "/Users/max/Downloads/test/website\\nbackup"
 r := regexp.MustCompile(a + "\n")
 taskText := r.ReplaceAllString(string(buf[:]), "")
 fmt.Println(r.String() == string(buf[:]))
 fmt.Printf("%q\n", r.String())
 fmt.Printf("%q\n", string(buf[:]))
 fmt.Printf("%q\n", taskText)
}

结果输出:

true

"/Users/max/Downloads/test/website\\nbackup\n"

"/Users/max/Downloads/test/website\\nbackup\n"

"/Users/max/Downloads/test/website\\nbackup\n"

可以发现,字符串并没有被替换

然后,我们更改一句代码


package main
import (
 "fmt"
 "regexp"
 "strings"
)
func main() {
 tmp := "/Users/max/Downloads/test/website\\nbackup\n"
 buf := []byte(tmp)
 a := "/Users/max/Downloads/test/website\\nbackup"
 r := regexp.MustCompile(a + "\n")
 // taskText := r.ReplaceAllString(string(buf[:]), "")
 taskText := strings.ReplaceAll(string(buf[:]), r.String(), "")
 fmt.Println(r.String() == string(buf[:]))
 fmt.Printf("%q\n", r.String())
 fmt.Printf("%q\n", string(buf[:]))
 fmt.Printf("%q\n", taskText)
}

结果输出:

true

"/Users/max/Downloads/test/website\\nbackup\n"

"/Users/max/Downloads/test/website\\nbackup\n"

""

可以发现,字符串可以被替换

所以,建议在使用字符串替换时,避免使用正则表达式的ReplaceAllString方法,而应该选择更为稳妥的strings包中的ReplaceAll方法。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。如有错误或未考虑完全的地方,望不吝赐教。

您可能感兴趣的文档:

--结束END--

本文标题: 用golang如何替换某个文件中的字符串

本文链接: https://www.lsjlt.com/news/124557.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 用golang如何替换某个文件中的字符串
    用golang实现了某个文件中字符的替换,替换为按行替换,执行后会生成新文件,如a.txt,执行后生成a.txt.mdf。新文件即修改后的内容。 主要用来练习文件的读取与写入 p...
    99+
    2022-11-12
  • 用golang怎么替换某个文件中的字符串
    这篇文章主要介绍了用golang怎么替换某个文件中的字符串,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。golang的优点golang是一种编译语言,可以将代码编译为机器代码...
    99+
    2023-06-14
  • linux如何替换文件中某个字符串
    linux替换文件中某个字符串的方法:1、打开linux终端;2、在命令行中使用sed命令来进行替换文件中某个字符串即可。具体操作步骤:在linux系统桌面中使用快捷键【Ctrl+Alt+T】打开linux终端命令行模式。在linux终端命...
    99+
    2022-10-12
  • MySQL - 替换字段中的某个字符串
    MySQL,替换某个字段中的指定字符串,如图: sql函数:replace(obj, search, replace_str) sql语法: UPDATE 表名 SET 字段名=replace(字段名, ‘被替换字符串’, ‘用来替换的字...
    99+
    2023-08-31
    mysql 数据库 sql
  • php怎么替换字符串中的某个字符
    在PHP中,可以使用str_replace()函数来替换字符串中的某个字符。```php$str = "Hello World";$...
    99+
    2023-08-23
    php
  • python怎么替换字符串中的某个字符
    在Python中,你可以使用字符串的`replace()`方法来替换字符串中的某个字符。`replace()`方法需要传入两个参数,...
    99+
    2023-08-31
    python
  • php字符串如何替换某个字符为空
    今天小编给大家分享一下php字符串如何替换某个字符为空的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。php字符串替换某个字符...
    99+
    2023-07-05
  • 如何批量替换字符串中的某个特定字符?
    前两天领导突然给了我一个excel文件(该文件的编码只是简单的一个编码,如‘C001’,而不是像A表中存在的是一个sql语句),里面有rule_code对应的代码,领导要求我将表A中ori_sql列wher...
    99+
    2022-10-18
  • linux如何替换文件中的字符串
    这篇文章主要为大家展示了“linux如何替换文件中的字符串”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“linux如何替换文件中的字符串”这篇文章吧。在linux中,可以利用sed命令来查找和替...
    99+
    2023-06-29
  • php如何替换字符串中第一个字符
    小编给大家分享一下php如何替换字符串中第一个字符,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!在PHP中,可以使用substr_replace()函数来替换字符...
    99+
    2023-06-15
  • php如何替换字符串中的字符串
    1、php如何替换字符串中的字符串2、php如何替换字符之间的内容3、php替换怎么替换指定位置字符4、php正则如何实现全部替换字符串5、php中字符替换函数是什么6、php如何从指定位置替换字符串 php如何替换字符串中的字符串 php...
    99+
    2023-09-23
    php 开发语言
  • oracle中如何替换多个字符串
    在Oracle中,可以使用`REPLACE`函数来替换多个字符串。例如,假设我们有一个名为`EMPLOYEES`的表,其中有一个名为...
    99+
    2023-09-12
    oracle
  • java怎么替换文件中的字符串
    Java中替换文件中的字符串可以使用以下步骤:1. 打开要进行替换的文件。2. 读取文件内容。3. 使用`String`的`repl...
    99+
    2023-09-20
    java
  • golang 如何替换掉字符串里面的换行符\n
    原始字符串:-----BEGIN LICENSE KEY-----\nL/+HAwEBB2xpY2Vuc2UB/4gAAQIBB1BheWxvYWQBCgABCVNpZ25hdHVyZQEKAAAA\n/gPo/4gB/...
    99+
    2022-11-11
  • linux如何替换文本中的字符串
    在Linux中,可以使用`sed`命令来替换文本中的字符串。`sed`命令的基本语法如下:```sed 's/要替换的字符串...
    99+
    2023-10-08
    linux
  • php字符串如何替换第一个字符后面的字符
    本文小编为大家详细介绍“php字符串如何替换第一个字符后面的字符”,内容详细,步骤清晰,细节处理妥当,希望这篇“php字符串如何替换第一个字符后面的字符”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。php中可用s...
    99+
    2023-06-30
  • php如何去掉字符串中的某个字符
    这篇“php如何去掉字符串中的某个字符”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“php如何去掉字符串中的某个字符”文章吧...
    99+
    2023-07-05
  • 使用PHP的substr_replace()函数替换字符串中的多个文本
    PHP是一种广泛应用于网站开发的脚本语言,具有强大的字符串处理功能。在字符串处理过程中,有时需要替换字符串中的多个文本,这时可以使用PHP的substr_replace()函数来实现。substr_replace()函数用于在字符串中替换指...
    99+
    2023-11-03
    PHP 替换字符串 substr_replace()
  • 使用PHP的str_replace()函数替换字符串中的多个文本
    使用PHP的str_replace()函数替换字符串中的多个文本在PHP中,str_replace()函数是一个非常常用的字符串处理函数,可以用于替换字符串中的指定文本。本文将以具体的代码示例,介绍如何使用str_replace()函数替换...
    99+
    2023-11-04
    PHP (编程语言) str_replace() (字符串替换函数)
  • jQuery如何替换字符串中的单词
    这篇文章将为大家详细讲解有关jQuery如何替换字符串中的单词,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。替换字符串中的单词var el = $('#id'...
    99+
    2023-06-27
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作