linux批量修改文件编码格式(包含子目录)

2023-11-04

背景

项目工程文件编码格式有utf-8,也有gb2312,在通过Source Insight 4.0打开文件只能设置一种默认编码格式UTF-8/Windows ANSI/GB2312,不能自动识别文件本身的编码格式,这就导致总有一部分文件打开后,注释是乱码,影响阅读和使用。

为解决该问题,寻找批量文件编码格式转换工具(包括子目录)。

1.安装enca

enca是Linux下的文件编码转换工具。

enca的安装请参考:
https://blog.csdn.net/mayue_web/article/details/89384982

查看是否安装enca:

enca --version

已安装,会显示enca版本,如下图:
在这里插入图片描述
未安装:
在这里插入图片描述

2.通过shell脚本批量修改编码格式

安装enca后,通过 enca -x utf-8 * 可将本目录下所有文件编码格式修改为utf-8格式,但是它不能遍历子文件夹,故要跟find命令配合。
在这里插入图片描述
上面这段代码可以搜索当前目录下及所有子目录的cpp和h格式的文件。

utf-8编码格式的转换脚本如下:
在这里插入图片描述

cli="find . -type f \( "
for arg in ${@:1:$#-1}
do
	cli="$cli -iname \*.$arg -o "
done
cli="$cli -iname \*.${@: -1} \)"
#echo $cli
PRE_IFS=$IFS
IFS=$'\n'
for i in `eval $cli`
do
	enca -x utf-8 $i
done
IFS=$PRE_IFS
echo "ok!"

通过chmod赋予toUTF8.sh运行权限,然后把它拷贝进~/bin 文件夹中,这样这条命令就在环境变量里了,可以随处使用。

chmod 777 toUTF8.sh

若需修改编码格式为其他格式,只需替换utf-8即可,可选项有GB2312,

3.脚本使用示范

使用示范:进入待处理文件夹的根目录,输入参数 cpp h c,即把根目录内所有cpp、h、c文件改成了utf-8字符集。脚本写成了可以接受指定文本格式的形式,这样比较灵活和通用。
在这里插入图片描述
好了文件统一转换为UTF-8编码格式了。

此时通过Source Insight 4.0以utf-8为默认编码格式打开,则注释不在乱码;

以后有遇到这种事,就能直接用它来处理就完事了。

4.enca查看文件编码格式

enca `ls`

在这里插入图片描述

参考资料:
https://blog.csdn.net/rush_mj/article/details/79705355
https://blog.csdn.net/gatieme/article/details/55045883

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

linux批量修改文件编码格式(包含子目录) 的相关文章

  • PX4飞行日志分析与.ulg文件格式转换

    文章目录 一 FlightPlot安装及使用二 ulg文件格式转换 xff08 windows环境 xff09 一 FlightPlot安装及使用 span class token number 1 span xff09 下载FlightP
  • Linux文件编程常用函数详解——fcntl()函数

    fcntl 函数 include
  • linux connect 设置连接超时【转】

    原来我们实现connect 超时基本上都使用unix网络编程一书的非阻塞方式 connect nonb 今天在网上看到一篇文章 觉得很有意思 转载如下 读Linux内核源码的时候偶然发现其connect的超时参数竟然和用SO SNDTIMO
  • 关于pthread_rwlock_t读写锁产生死锁的情况

    对于pthread rwlock t读写锁 一个线程持有着写锁 又去加 该锁的 读锁 可能会产生死锁 一个线程持有着 读或者写 锁 又去加 该锁的 写锁 可能会产生死锁 此时pthread rwlock rdlock和pthread rwl
  • 检验IP地址有效性

    使用inet aton函数
  • linux批量修改文件编码格式(包含子目录)

    背景 项目工程文件编码格式有utf 8 也有gb2312 在通过Source Insight 4 0打开文件只能设置一种默认编码格式UTF 8 Windows ANSI GB2312 不能自动识别文件本身的编码格式 这就导致总有一部分文件打
  • linux stat函数讲解

    原文地址 http www cnblogs com hnrainll archive 2011 05 11 2043361 html 表头文件 include
  • chmod函数

    int chmod const char pathname mode t mode 作用 修改文件的权限 参数 mode 需要修改的权限值 宏或者八进制数 返回值 成功 0 失败 1 include
  • 解决/lib64/libstdc++.so.6: version `CXXABI_1.3.9' not found

    原因 编译时用的gcc等系统环境和运行时的环境不同 比如gcc版本不一样 以及其他的运行库版本不同等 方法 官方下载需要的版本库 之后软连接到运行系统上 wget http ftp de debian org debian pool mai
  • 控制符号的可见性

    在普通的C语言中 如果您希望将函数或者变量限制在当前文件中 需要对其使用static关键字 然而 在一个包含很多文件的共享库中 如果您希望某个符号可以被共享库内部的几个文件访问 而又不提供给外部 则对符号进行隐藏处理就会比较困难 大多数的连
  • 线程的同步和互斥

    线程的同步和互斥题目 题目 设计生产者与消费者模型 缓冲区是一个大小为10的环 每个生产者产生一个0 1000的随机整数 存放在环空位中 消费者从环中取数据 并输出 一个生产者或消费者对应一个线程 要避免 1 两个生产者同时向环的同一个位置
  • Linux文件编程常用函数详解——exit()和_exit()函数

    两个函数的区别
  • Linux系统中查看可执行程序的所在目录

    前言 在嵌入式开发中 有时候需要知道可执行程序的所在目录 在工作中 遇到一次定制开发 是集成对方公司的算法 对方要求把模型文件放到和可执行程序相同的目录下 当时完全不知道可执行程序在设备的哪个目录 因为没有遇到过也没有思考过这个问题 当时也
  • Linux文件编程常用函数详解——read()和write()函数

    read 函数 include
  • 音视频大牛雷霄骅

    https blog csdn net leixiaohua1020 https www zhihu com question 49211380 https www bilibili com video av9927626 share so
  • 如何快速确定程序的入口

    前言 在阅读代码时 知道程序的入口十分重要 这有助于快速理清程序的逻辑框架 我们找到程序入口后 顺着代码的执行顺序来阅读代码 可以比较容易的理解代码 这里说的代码是编译后成为可执行程序的代码 在linux中就是elf格式 被编译成可执行程序
  • Linux文件编程常用函数详解——lseek()函数

    lseek 函数的头文件和形式 include
  • read和write函数

    read ssize t read int fd void buf size t count fd 文件描述符 通过open获得 buf 需要读取的数据的存放位置 数组的地址 count 指定数组的大小 返回值 成功 gt 0 返回实际读取
  • linux下C语言中的flock函数用法

    http blog csdn net lin fs article details 7804494 表头文件 include
  • gcc搜索动态链接库的路径优先级排序

    GCC运行时 Linux动态链接库的搜索路径按优先级排序为 1 编译目标代码时 Wl rpath 指定的动态库搜索路径 当指定多个动态库搜索路径时 路径之间用冒号 分隔 2 环境变量 LD LIBRARY PATH 指定的动态库搜索路径 3

随机推荐

  • 太阳能发电板的规格尺寸_光伏组件(太阳能电池板)规格表

    光伏组件 太阳能电池板 规格表 峰值 型号 材料 功率Pm watt 峰值电压Vmp V 峰值电流Imp A 开路电压Voc V 短路电流Isc A 尺寸 mm APM18M5W27x27 APM36M5W27x27 APM18P5W27x
  • 链表累加求和

    给定程序是建立一个带头结点的单向链表 函数fun的功能是将单向链表结点 不包括头结点 数据域为偶数的值累加起来 并且做为函数值返回 include
  • LeetCode--初级算法--回文链表

    题目 请判断一个链表是否为回文链表 示例 1 输入 1 gt 2 输出 false 示例 2 输入 1 gt 2 gt 2 gt 1 输出 true 进阶 你能否用 O n 时间复杂度和 O 1 空间复杂度解决此题 解题方法 其实 链表的题
  • redhat 安装 java_Redhat Linux安装JDK 1.7

    本篇主要介绍在Redhat Linux Red Hat Enterprise Linux Server release 5 7 Tikanga 系统上安装JDK 1 7 其它Linux平台安装也大同小异 可能略有差别 步骤1 下载JDK 1
  • 纪念2015年最后的10天

    至今天为止 我已经在现在的公司也是我的第一家公司待了一年零4个月整 经历了一段历程之后 忽然自己发问为什么这只菜鸟还是飞不高 飞不远 仔细想来 原因可能有以下几点 1 过分的依赖于网络查询 而忽略了个人总结 虽然笔记记了一大堆 但是每次用的
  • Compound Types: Enums and Structs___CH_10

    10 1 Introduction to program defined user defined types What are user defined program defined types Defining program def
  • ROS2 Humble如何使用串口驱动?(Serial)

    目录 1 串口库 Serial Library 简介 2 源码及主页 3 国内git仓库 ROS2 humble已测试可用 4 可能出现的问题
  • 抖音小程序怎么赚钱,都有哪些变现玩法技巧。

    流量 钱 在抖音小程序变现这个项目中不一定成立 A 第一个视频爆了100多万观看 连怼了一次爆到900万 照理说 那么大的曝光率 挂小程序应该赚很多钱 答 没有多少收益 为什么 因为A发的视频内容和挂的小程序不相关 爆的是搞笑的视频 而挂的
  • pikachu xss攻击模块 信息安全 xss漏洞 详细分析

    XSS攻击 跨站脚本漏洞测试流程 反射型xss get 反射型xss post 存储型xss 实例 xss钓鱼 DOM型xss Dom型xss x Xss盲打 Xss之过滤 Xss之htmlspecialchars Xss之href输出 X
  • 第四节:论文种类分类-学习笔记

    任务说明 学习主题 论文分类 数据建模任务 利用已有数据建模 对新论文进行类别分类 学习内容 使用论文标题完成类别分类 学习成果 学会文本分类的基本方法 TF IDF等 数据处理步骤 在原始arxiv论文中论文都有对应的类别 而论文类别是作
  • Python读取文本文件到数组

    支持的格式有txt dat csv mat等 读入的数据存为float类型 可以自定义数据之间的间隔符 可以自定义列数cols import numpy as np import linecache import os filename d
  • MinIO verify 接口敏感信息泄露漏洞分析(CVE-2023-28432)

    MinIO verify 接口敏感信息泄露漏洞 简介 漏洞描述 MinIO 是一种开源的对象存储服务 它兼容 Amazon S3 API 可以在私有云或公有云中使用 MinIO 是一种高性能 高可用性的分布式存储系统 它可以存储大量数据 并
  • 【转载】Java中将InputStream读取为String, 各种方法的性能对比

    Java中将InputStream读取为String 各种方法的性能对比 原文地址 http www cnblogs com milton p 6366916 html 如下 一共存在11种实现方式及其对应的性能测试结果 1 使用IOUti
  • 在wpf中利用异步lambda编程,模拟数据库连接,防止界面假死

    参考 图解C 第20章异步编程第五节程序 解决在wpf中连接数据库 界面假死问题 public partial class MainWindow Window private bool isConnected false public Ma
  • 山洪灾害监测预警系统解决方案

    一 方案背景 近几年我国频繁发生山洪灾害现象 造成大量的人员伤亡 使得洪涝灾害死亡总人数呈上升趋势 群死群伤事件时有发生 为了提高山洪灾害监测预警能力 加强灾害发生时的快速反应能力 我司研发出了山洪灾害监测预警系统设备 它具有技术先进 功能
  • 职工管理系统_201026(思路详解版-第四步修改职工)

    12 修改职工 功能描述 能够按照职工的编号对职工信息进行修改并保存 12 1 修改职工函数声明 在workerManager h中添加成员函数 void Mod Emp 修改职工 void Mod Emp 12 2 修改职工函数实现 在w
  • 使用PAM保障开发运营安全

    硬编码凭据和 DevOps 系统中缺乏凭据安全性是组织的巨大漏洞 以明文形式访问凭据的恶意内部人员可以在 IT 中建立和扩展其立足点 基础设施 构成巨大的数据被盗风险 什么是PAM 特权访问管理 PAM 是指一组 IT 安全管理原则 可帮助
  • Markdown 技能树(2):段落及强调

    Markdown 技能树 2 段落及强调 在 Markdown 中 段落是由一个以上相连接的行句组成 而一个以上的空行则会切分出不同的段落 一般的段落不需要用空白或换行缩排 空行的定义是显示上看起来像是空行 便会被视为空行 比如 若某一行只
  • 再谈Linux epoll惊群问题的原因和解决方案

    转自 https blog csdn net dog250 article details 80837278 缘起 近期排查了一个问题 epoll惊群的问题 起初我并不认为这是惊群导致 因为从现象上看 只是体现了CPU不均衡 一共fork了
  • linux批量修改文件编码格式(包含子目录)

    背景 项目工程文件编码格式有utf 8 也有gb2312 在通过Source Insight 4 0打开文件只能设置一种默认编码格式UTF 8 Windows ANSI GB2312 不能自动识别文件本身的编码格式 这就导致总有一部分文件打