cfile清空文件内容_go:删除文件中每行行尾的空格

1648933668af501b089878f611b6b03c.png

需求

使用 gerrit 进行 codereview 时,有时会在行尾出现多余的空格,看着别扭。因此需要一个工具删除多余的空格。

函数

import (
    "os"
    "bufio"
    "strings"
)
​
func formatFile(filename string) error {
    f, err := os.OpenFile(filename, os.O_RDWR, 0666)    //以读写方式打开文件
    if nil != err {
        return err
    }
    defer f.Close()     //保证文件能被关闭
​
    var content string  //存储新的文件内容
​
    fc := bufio.NewScanner(f)   //按行读取文件内容
    for fc.Scan() {
        content += strings.TrimRight(fc.Text(), " ") + "rn"   //去除行尾空格,生成新的文件内容
    }
    
    err = f.Truncate(0)     //清空文件
    if nil != err {
        return err
    }
    
    _, err = f.Seek(0, 0)   //将文件指针指向文件起始位置,保证从头写入文件
    if nil != err {
        return err
    }   
​
    _, err = f.WriteString(content) //向文件写入新的内容
    if nil != err {
        return err
    }
    
    return nil
}

主要函数

strings.TrimRight(s string, cutset string)—— 删除字符串 s 结尾的 cutset 字符串。

strings.TrimLeft(s string, cutset string)——删除字符串 s 起始位置的 cutset 字符串。

strings.TrimSpace(s string)——删除字符串 s 开头和结尾的空格。

:在 Linux 环境中,通常使用工具—— dos2unixdos 格式 的文件转换为 unix 格式 的文件。上述函数中,在生成新的文件内容时,如果在每行结尾添加 rn,那么生成的文件为 dos 格式;在每行结尾添加 n', 那么生成的文件为 unix 格式

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值