Linux下如何批量转码txt

来源:http://hi.baidu.com/curioz/blog/item/2555863514f9491d90ef390d.html

 

下载了不少文本txt,如verycd上的致纯书苑,解压看看是GBK编码。我用的Ubuntu Linux默认编码用UTF8(估计大部分Linux发行版都是),这样用grep等命令就很不方便,需要转码。

有iconv可用:

用法: iconv [选项...] [FILE...]
转换给出文件的编码从一种到另外一种.

输入/输出格式规范
-f, --from-code=NAME 原始文本编码
-t, --to-code=NAME 输出编码

信息
-l, --list 列出所有已知编码字符集

输出控制:
-c 忽略输出中的无效字符
-o, --output=FILE 输出文件
-s, --silent suppress warnings
--verbose 打印进程信息

-?, --help 显示此帮助列表
--usage 提供简短的使用信息
-V, --version 显示程序版本号

一般 iconv -c -fgbk -tutf8 XXX.txt -o XXX-u8.txt就可以了,-c选项很有用,遇到错误还可以继续而不是退出。

问题是现在文件有成千上万,试图用for循环完成这个任务:
for i in `ls *.txt` ; do iconv -c -fgbk -tutf8 $i -o u$i ;done
但事与愿违,检查了下发现是因为有写文件名带有空格,导致变量i赋值不对,比如对文件“十二楼 清 李渔.txt”,i被赋值三次,得到如下出错信息
iconv: 无法打开输入文件'十二楼': 没有该文件或目录
iconv: 无法打开输入文件'清': 没有该文件或目录
iconv: 无法打开输入文件'李渔.txt': 没有该文件或目录

研究了下,想到一个办法可以勉强完成任务,源码如下:

#! /bin/bash

# convert txt files in current dir fro gbk to utf8
# output saved to the dir `pwd`_u

PWD=`pwd`
UDIR="$PWD"_u
mkdir $UDIR
for i in `ls -l *.txt|cut -c51-120 |tr [:blank:] _` ; do
iconv -c -fgbk -tutf8 "${i//_/ }" -o "$UDIR/$i"
done

上面用到cut和tr先将空格转换,以便变量i正确赋值,调用时再通过字符替换(${i//_/ })转回来。效果是将本目录下的所有txt文件从GBK转码为UTF8的同名文件(如文件名有空格则被下划线替换),如当前目录为mydir/test/,则转换后的文件放在mydir/test_u/下面。

还没想好如何处理当前目录下的子目录,估计要用find命令,关键是先建立一个与当前目录结构相同的平行目录。如果你有好办法,请留言。

_____________________
updated in 05/13/2010
1. google了下,发现处理带空格文件名不用这么麻烦,用 for i in *.txt 就可以了,上面用for i in `ls *.txt`是画蛇添足了。(cf: http://blog.youkuaiyun.com/sabalol/archive/2009/11/12/4804607.aspx)

2. 复制目录结构用find和-exec就可实现,如在当前test目录下执行:
find . -type d -exec mkdir -p ../test_u/{} \; (cf: http://showmealone.blog.sohu.com/138666105.html)

See also:
从新浪读书下载纯文本格式书籍(附bash代码)

本地加密音频文件解密与转码:五步实现DRM限制移除与格式自由化 数字版权管理(DRM)技术旨在保护数字内容版权,其核心原理是通过加密与授权验证机制限制文件的复制与播放环境。这项技术在保护创作者权益的同时,也可能为用户跨设备使用合法获取的内容带来障碍,例如平台依赖、格式不兼容或工具失效。从技术价值看,理解并掌握针对本地加密音频文件的处理能力,有助于实现个人数字资产的长期可访问性与统一管理。在实际应用场景中,这尤其适用于音乐库整理、老旧音频资源抢救,以及确保在车载播放器、多设备间无缝播放等需求。本文聚焦于通过识别、解密、转码、校验与管理五个核心步骤,系统化解决此类问题,其中 阅读详情

相关推荐

Linux命令行批量文件编码转换

使用Linux命令行进行批量文件编码转换是一项非常有用的技能。本文介绍了如何使用iconv命令来实现这个功能,并提供了一个示例脚本来批量转换文件编码。通过灵活运用这些技巧,你可以轻松处理大量文本文件的编码转换需求。在Linux系统中,我们经常需要处理大量的文本文件,并且有时这些文件的编码格式可能不一致。假设我们有一个目录,其中包含了多个需要转换编码的文本文件。我们想要将这些文件的编码从UTF-8转换为GBK。在上面的示例中,我们将源编码和目标编码硬编码在脚本中。文件,并将其编码从UTF-8转换为GBK。

git_debug233的博客 1137

将windows下的txt格式转化为linux下的文件格式

今天从看博客,看到一个比较好的程序,直接复制到服务器(linux)上,发现由于回车和tab键的问题,格式特别乱,我就想着直接使用rz命令从windows直接上传到服务器中,但是上传上去之后,编译出现错误:/bin/sh^M: bad interpreter: No such file or directory通过查找资料,发现是windows下编写的文件,在linux中无法识别的问题。解决办法,在

十一月zz的博客 6769

Linux下xlsx文件转txt文件.docx

Linux命令行实现在线预览PPT,PPTX,DOC,DOCX,XLS,XLSX文件,可以实现xlsx文件转txt文件,文档内是安装插件详细步骤

用脚本如何实现将Linux下的txt文件批量转化为Windows下的txt文件?

众所周知,Windows和Linux的文件换行回车格式不同,Windows下换行格式是\r\n(回车+换行),Linux下换行格式为\n(只是换行),因此,其中一个操作系统的文本文件若需要在另外一个中显示,需要转换。在Linux系统中,提供了两个命令进行这种转换:unix2dos,dos2unix。 今天上午,翻阅以前的笔记(注意,是linux下的txt文件),为了在win7下呈现,不得已,需要...

weixin_34111819的博客 241

aspx导出word(图片和文字)

aspx根据word模板导出word(图片和文字)。具体模板说明见项目工程WordTempPath目录下的模板说明.txt。 word模板为TemplateTable.doc,可根据需要自行定义。

批量EXCEL文档转txt脚本 by LSS

自己用vbs写的小工具,将excel文件转换为txt文本文件,便于后续的文本处理。使用方法:将需要转换的文件通过鼠标拖拽到该文件上,或将该文件粘贴到文件夹然后双击运行,可以把文件夹内的所有excel文件转换为txt文本文件 注:需安装有office。仅转换文本,不支持图表等其他非文字对象

Linux乱码转换(一)

带有中文的文件传到Linux服务器,打开后,看到的全是windows乱码。下面介绍如何将在Linux环境下打开中文字符文件,而不出现乱码。 1)载window下查看文件:Hadoop权威指南.txt 在这本《Hadoo...

ctsu9014的博客 537

计算机考研408复试题汇总

TCP连接是全双工的,两端都可以先挥手 其中一端完成数据发送任务后,发送一个FIN包来终止,另一端针对这个FIN包回复确认包, 直到另一端也发送请求终止数据包FIN,另一端作出确认应答,并且还要发送一个ACK=1表示确认号有效,如果没有收到这个就可以进行重传.

ca1m4n的博客 1万+

利用find命令进行批量操作

前些天,我要把Linux上的几千个txt文档进行转码,需要用到iconv命令,可是我总不能 一个一个的去敲。 文档转码命令:iconv -f GBK -t UTF-8 file1 -o file2 将file1从GBK转为UTF-8,并输出为file2。 于是我发现了find命令的一个exec参数。 [root@iZrzyv77duj240Z ~]# ls /mnt/ test.txt [root@iZrzyv77duj240Z ~]# find /mnt -type f -exec ls -l {} \;

学习技术是为了早点下班! 1036

MySQL安装配置教程(超级详细)

一、 下载MySQL Mysql官网下载地址:MySQL :: Download MySQL Installer (Archived Versions) 1. 选择要安装的版本,本篇文章选择的是5.7.31版本,点击Download下载 正在上传…重新上传取消 二、 安装MySQL 1. 选择设置类型双击运行mysql-installer-community-5.7.31.0.msi 这里选择是自定义安装,所以直接选择“Custom”,点击“Next” “Developer Default”是

m0_67322837的博客 5万+

自动驾驶预测决策规划八股

预测规划八股个人总结。

dawushixiange的博客 479

shell实现大批量word转码然后分析相关字段

需求 需要从服务器中的所有附件(2013-2019) 共60G查找相关字段 在linux上面直接打开doc等是乱码的 思路 先全部附件转码为txt, 然后用grep遍历查找字段实现 转码shell #!/bin/bash #************************************************************************* # ...

weixin_34018202的博客 181

Zynq AXI DMA实战:5分钟搞懂S_AXIS_S2MM和M_AXIS_MM2S数据流(附Vivado配置截图)

本文通过Vivado实战配置,清晰解析了Zynq平台AXI DMA IP核中S_AXIS_S2MM和M_AXIS_MM2S数据流的核心概念与连接方法。文章重点阐述了数据流向、主从关系及接口命名规则,并提供了从ADC数据采集到DDR存储,再从DDR读取数据发送至DAC的完整双向数据流搭建指南,帮助工程师快速避坑。

weixin_29200741的博客 449

Linux 文件批量转码

linux系统里提供的文件转化编码的命令iconv,例如: iconv -t utf-8 -f gb2312 -c test.xml > text_UTF8.xml -f 源编码 -t 目标编码 -c 忽略无法转换的字符 如果想批量转换,只需要执行如下两行命令即可: find folder -type d -exec mkdir -p utf/{} \; find ...

洛丹伦的秋天 1362

基于情感分析+聚类分析+LDA主题分析对服装产品类的消费者评论分析

本研究旨在通过对服装产品类的消费者评论进行综合分析,为企业提供更全面、更深入的市场洞察和决策支持。同时,本研究的方法和结果也可以为其他领域的消费者评论分析提供借鉴和参考。

m0_64336780的博客 2万+

DeerFlow 系列教程 第十八篇 | 实战案例三——用 DeerFlow 构建自定义 AI 工作流

在实际业务中,许多复杂的内容生产任务不是单一技能就能覆盖的。需要先调研某个主题的最新信息基于调研结果撰写结构化的文章或报告对报告中的数据进行可视化处理最终输出符合品牌风格的排版文档或演示文稿这些环节涉及不同的领域知识和工具链,单个内置技能无法完全覆盖。组合自定义技能、MCP 外部工具和多 Agent 协作,构建端到端的工作流。传统手工流程: DeerFlow 自定义工作流:搜索资料、阅读文献 用户描述需求│ │▼ ▼。

weixin_43674738的博客 204

Linux下如何批量转码iconv

来源:http://hi.baidu.com/curioz/blog/item/2555863514f9491d90ef390d.html 下载了不少文本txt,如verycd上的致纯书苑,解压看看是GBK编码。我用的Ubuntu Linux默认编码用UTF8(估计大部分Linux发行版都是),这样用grep等命令就很不方便,需要转码。有iconv可用:用法: iconv [选项...] ...

weixin_30773135的博客 189

CANoe-vTESTstudio之Test Diagram编辑器

总之,CANoe-vTESTstudio的Test Diagram编辑器提供了一个直观且强大的工具,用于创建和管理测试用例。通过图形化的界面和丰富的功能,测试工程师可以更轻松地编写复杂的测试脚本,并有效地进行测试开发。在上面的示例中,我们创建了一个名为"MyTestCase"的测试用例,并定义了两个测试步骤"Step1"和"Step2"。在上面的示例中,我们在执行"Step1"之后使用条件语句来确定是否执行"Step2"。在每次迭代中,我们创建一个新的测试步骤,并根据迭代次数动态生成相应的日志和验证消息。

TcData的博客 248

批量转换文本文件编码

下面代码用于 linux: #! /bin/bashfor i in "$@"do iconv -f GB18030 -t UTF-8 "$i" > tmp 2>/dev/null if [ $? -eq 0 ];then mv tmp "$i" else echo "________$i 没有被转换______" rm tmp fidon

koh 960

SAP 成本分摊逻辑与案例(含具体数据)

摘要: SAP成本分摊通过**分配(Allocation)与分摊(Assessment)**两种方式,将间接成本中心费用按预设规则(如人数、工时、比例等)结转至直接成本对象。分配保留原始成本要素(如电费、工资),适用于需明细追踪的场景;分摊则打包为次级成本要素(如管理费用),简化核算。实操案例涵盖行政费用分配(按人数)、水电车间分摊(按工时)、机修作业分摊(作业成本法)及内部订单结算,系统通过KSV1/KSU1配置循环规则,KSV5/KSU5执行结转。关键点在于选择匹配业务的分摊基础,合理配置次级成本要素,

金牌架构师 550

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

linux下redis添加数据文件,Redis从文件中批量插入数据

Redis从文件中批量插入数据简介在redis中,有时候需要批量执行某些命令,但是在redis的redis-cli下,只能一条条的执行指令,实在太麻烦了!想到这,你是不是蓝瘦香菇?如果能将要执行的指令一行行存储到文件中,然后用一行命令将文件中的命令一次执行完成,那肯定爽死了!所以下面,我要带你冒着手指怀孕的危险,让你爽一把:创建文件首先创建一个txt文件,将要执行的指令一行一行写进去,当然,你也可...

weixin_31755877的博客 1058

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

解决视频转码后颜色有变化的问题

环境: Ubuntu16.4 ffmpeg4.3.1 x264 1.60 视频转码时有时会遇到转码后视频的颜色与原始视频有些许差异的问题。问题的根源在于编码器的输出配置其实是有很多的,如果用户不手动配置,那就采用默认的配置。默认的配置虽然可以满足市面上绝大多数需求,但是一旦遇到比较偏的视频源时,往往会导致意想不到的问题 我们往往会忽视视频的色域编码。有关色域的知识,读者可以从下面这个连接做一个详细的了解 http://avisynth.nl/index.php/Convert 可以用ffmpeg查看视

qq_33899456的博客 1万+

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

OpenAI Codex实战:用AI命令行工具自动化批量视频处理与转码

在AI编程工具加速普及的背景下,命令行智能代理逐渐成为提升开发与运维效率的重要方式。这类工具通过理解自然语言指令,自动完成代码生成、文件读写和命令执行等操作,将重复的脚本化工作从手动敲击终端转变为对话式交互。在视频内容生产场景中,这种能力尤为实用:借助Codex这类命令行AI编程代理,用户无需精通FFmpeg参数或Python脚本,即可实现批量转码、视频素材归档、字幕格式清洗与元数据整理等自动化处理,显著降低多文件任务的操作门槛。同时,通过Node.js环境配置与第三方模型服务(如DeepSeek)的接入,

weixin_34302561的博客 450

shell导出txt乱码_linux下csv导出文件中文乱码问题

近日在服务器端通过导出csv文件,将数据从linux服务器端保存到windows桌面端,以便用户可以通过excel打开使用数据。但是在使用excel打开csv文件时,出现了中文乱码的情况,但是使用记事本打开没有问题。经过分析,原因如下:1)linux服务器端采用的是zh_CN.utf-8编码方式;2)windows的excel打开csv文件默认是使用ansi(gbk)编码方式;这样就导致excel...

weixin_39776991的博客 1514

2.解决Linux中文乱码问题

我们从windows系统上传文件到Linux系统中,经常会遇到中文乱码问题。通常,这是因为Windows的字符编码为GBK,而Linux系统的字符集是UTF-8引起的。 为了模拟上述情况,我先在Windows中,创建以GBK编码的文件testGBK.txt,然后上传至CentOS系统。最后,我将转换testGBK.txt的字符编码,解决乱码问题。 一、创建testGBK.txt 打开Notepad++,随便写几行中文,然后指定为GBK编码,保...

kande0707的博客 1万+

解决ubuntu linux打开windows文件的乱码问题 利用LibreOffice转码

发现在linux打开在windows下编辑过的txt文件时,中文全部都变成乱码了,原因很简单,linux下默认是 UTF-8编码的,而windows的记事本一般是GB编码的

Octobershiner的专栏 1万+
上一篇: jsp页面不缓存
下一篇: JDBC给存储过程传递数组类型的参数
disablebb
博客等级 码龄18年 5粉丝 80原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值