前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >用 Linux sed 命令替换智能引号

用 Linux sed 命令替换智能引号

原创
作者头像
用户8965210
修改于 2021-09-27 08:49:23
修改于 2021-09-27 08:49:23
2.7K00
代码可运行
举报
文章被收录于专栏:运维技术分享运维技术分享
运行总次数:0
代码可运行

每个字母或字符,不管它是否印在你的键盘上,都有一个编码。字符编码可以用不同的方式表达,但对计算机来说,Unicode 序列 u2018 和 u2019 产生  和 ,而代码 u201c 和 u201d 产生  和  字符。知道这些“秘密”代码意味着你可以使用 sed 这样的命令以编程方式替换它们。任何版本的 sed 都可以,所以你可以使用 GNU sed 或 BSD sed,甚至是 Busybox sed。

下面是我使用的简单的 shell 脚本:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#!/bin/sh# GNU All-Permissive LicenseSDQUO=$(echo -ne '\u2018\u2019')RDQUO=$(echo -ne '\u201C\u201D')$SED -i -e "s/[$SDQUO]/\'/g" -e "s/[$RDQUO]/\"/g" "${1}"

将此脚本保存为 fixquotes.sh,然后创建一个包含智能引号的单独测试文件:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
‘Single quote’“Double quote”

运行该脚本,然后使用 cat 命令查看结果:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ sh ./fixquotes.sh test.txt$ cat test.txt'Single quote'"Double quote"

安装 sed

如果你使用的是 Linux、BSD 或 macOS,那么你已经安装了 GNU 或 BSD 的 sed。这是原始 sed 命令的两个独特的重新实现,对于本文中的脚本来说,它们在功能上是一样的(不过并不是所有的脚本都是这样)。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
用 Linux sed 命令替换智能引号的操作方法
计算机并不是打字机。当你按下键盘上的一个键时,你不是在按一个带有印章的控制杆。你只是按下一个按钮,向你的计算机发送一个信号,计算机将其解释为一个显示特定预定义字符的请求。这个请求取决于你的键盘映射。作为一个 Dvorak 打字员,我目睹了人们在发现我的键盘上的 “asdf” 在屏幕上产生 “aoeu” 时脸上的困惑。你也可能按了一些特殊的组合键来产生字符,如 ™ 或 ß 或 ≠,这甚至没有印在你的键盘上。
用户9105998
2021/11/22
1.6K0
一个流传广泛的正则匹配所有中文的错误表示
小鹏 and (小灵狗 or 神州租车) and (三方战略 or 宁波 or P7 or 租赁 or 广州 or 杭州 or 王桐 or 蒋志春 or 残值管理 or 曾䶮冬 or 强强联合 or 战略合作 or 共赢)
明月AI
2023/02/06
1.6K0
Linux三大剑客之sed
版权声明:本文为耕耘实录原创文章,各大自媒体平台同步更新。欢迎转载,转载请注明出处,谢谢。联系本人:ecsboy(微信),136625317(QQ) https://blog.csdn.net/solaraceboy/article/details/79272344
耕耘实录
2018/12/20
8770
一天一个 Linux 命令(20):sed 命令
本文为joshua317原创文章,转载请注明:转载自joshua317博客 https://www.joshua317.com/article/150
joshua317
2021/10/09
3090
三十分钟学会SED
本文承接之前写的三十分钟学会AWK一文,在学习完AWK之后,趁热打铁又学习了一下SED,不得不说这两个工具真的堪称文本处理神器,谁用谁知道!本文大部分内容依旧是翻译自Tutorialspoint上的入门教程,这次是 Sed Tutorial 一文,内容做了一些删减和补充,增加了一些原文中没有提及到的语法和命令的讲解,并且对原文所有的示例都一一进行了验证,希望本文对大家学习和了解Sed有所帮助。
用户2131907
2019/02/27
1.2K0
技能篇:sed教程-linux命令
sed 全名为 stream editor,是用于文本处理的流编辑器,支持正则表达式。sed处理文本时是一次处理一行内容
潜行前行
2021/06/25
7380
Linux 常用命令(五)
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
小徐
2018/09/21
2K0
Linux 常用命令(五)
sed基本用法
创建虚拟机,用最小化方式安装,按要求配置好ip,同网段之间要能互通,配置好yum,修改主机名
派大星在吗
2021/12/05
1.3K0
Linux sed命令详解
sed意为“流编辑器(stream editor)” 字符串筛选工具。 对一个文档中的行进行操作 和vi编辑很相似。可以查看vim使用命令详解 1 sed基本格式 第一种 sed 参数 '脚本语句(
Y大宽
2019/05/22
3.4K0
linux中sed命令总结
原文:https://wangchujiang.com/linux-command/c/sed.html
入门笔记
2022/06/02
3.3K0
Sed三剑客入门与进阶
描述:功能强大的流式文本编辑器(流编辑器-Stream editor)进行文本过滤与格式化替换输出,是在进行文本处理中非常实用的工具,能够完美的配合正则表达式使用;
全栈工程师修炼指南
2022/09/28
3.1K0
Sed三剑客入门与进阶
如何编写一个shell脚本
本文结合大量实例阐述如何编写一个shell脚本。  为什么要进行shell编程  在Linux系统中,虽然有各种各样的图形化接口工具,但是sell仍然是一个非常灵活的工具。Shell不仅仅是命令的收集,而且是一门非常棒的编程语言。您可以通过使用shell使大量的任务自动化,shell特别擅长系统管理任务,尤其适合那些易用性、可维护性和便携性比效率更重要的任务。  下面,让我们一起来看看shell是如何工作的:  建立一个脚本  Linux中有好多中不同的shell,但是通常我们使用bash (bou
阳光岛主
2019/02/20
1.7K0
Sed 命令
sed是一种流编辑器,流编辑器会在编辑器处理数据之前基于预先提供的一组规则来编辑数据流。
用户10638239
2023/11/24
1980
【Linux】《how linux work》第十一章 Shell 脚本简介
If you can enter commands into the shell, you can write shell scripts (also known as Bourne shell scripts). A shell script is a series of commands written in a file; the shell reads the commands from the file just as it would if you typed them into a terminal.
阿东
2024/04/28
1870
【Linux】《how linux work》第十一章 Shell 脚本简介
sed命令工作原理及命令备忘
sed是一个非交互式的流编辑器(stream editor)。所谓非交互式,是指使用sed只能在命令行下输入编辑命令来编辑文本,然后在屏幕上查看输出;而所谓流编辑器,是指sed每次只从文件(或输入)读入一行,然后对该行进行指定的处理,并将结果输出到屏幕(除非取消了屏幕输出又没有显式地使用打印命令),接着读入下一行。整个文件像流水一样被逐行处理然后逐行输出。 工作中经常会使用sed命令对文件进行各种操作,之前一直对它的工作原理不是很了解,只不过在网上抄一些命令完成操作,有时遇到了问题,就问一问身边的“脚本小王
jeremyxu
2018/05/10
1K0
Linux 常用命令(三)
curl 命令支持在线下载功能,使用方便,它支持,S,等协议,还支持PUT,POST,COOKIES,认证授权等操作。
小徐
2018/09/21
2K0
Linux 常用命令(三)
sed命令
sed命令是利用脚本来处理文本文件,可依照脚本的指令来处理、编辑文本文件,主要用来自动编辑一个或多个文件、简化对文件的反复操作、编写转换程序等。
WindRunnerMax
2021/01/06
7600
Linux下的shell命令笔记
Shell 是一种脚本语言,不同于 C/C++、Pascal、Go语言、汇编等,必须在程序运行之前将所有代码都翻译成二进制形式,也就是生成可执行文件,用户拿到的是最终生成的可执行文件,看不到源码。 这个过程叫做编译(Compile),这样的编程语言叫做编译型语言,完成编译过程的软件叫做编译器(Compiler)。而 Shell、JavaScript、Python、PHP等,需要一边执行一边翻译,不会生成任何可执行文件,用户必须拿到源码才能运行程序。程序运行后会即时翻译,翻译完一部分执行一部分,不用等到所有代码都翻译完。 这个过程叫做解释,这样的编程语言叫做解释型语言或者脚本语言(Script),完成解释过程的软件叫做解释器。 编译型语言的优点是执行速度快、对硬件要求低、保密性好,适合开发操作系统、大型应用程序、数据库等。 脚本语言的优点是使用灵活、部署容易、跨平台性好,非常适合 Web 开发以及小工具的制作。 Shell 就是一种脚本语言,我们编写完源码后不用编译,直接运行源码即可。
包子388321
2020/06/16
3.7K0
shell编程下 特殊变量、test / [ ]判断、循环、脚本排错
惨绿少年
2017/12/27
1.3K0
《Linux命令行与shell脚本编程大全》第二十一章 sed进阶
本章介绍一些sed编辑器提供的高级特性。 21.1 多行命令 按照之前的知识,所有的sed编辑器命令都是针对单行数据执行操作的。 在sed编辑器读取数据流时,它会基于换行符的位置将数据分成行,一次处理一行数据。 有时会需要对跨多行的数据执行特定操作。 比如,在数据中查找一个长的短语Linux system Administrators Group.如果这个短语出现在两行当中,之前的知识就不够用了。 解决方案,sed编辑器包含了三个可用来处理多行文本的特殊命令: N:将数据流中的下一行加进来创建一个多行组(m
xcywt
2018/01/11
1.7K0
《Linux命令行与shell脚本编程大全》第二十一章 sed进阶
相关推荐
用 Linux sed 命令替换智能引号的操作方法
更多 >
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文