linux下文件中替换字符命令
linux下文件中替换字符命令详细介绍
在 Linux 系统里,有不少命令可用于替换文件中的字符,下面为你介绍几个常用的命令及其使用方法。
1.
sed命令
sed(Stream Editor)是一个强大的流编辑器,能对文本进行各种处理,包含替换字符。
基本语法
bash
文件名
s:表示替换操作。原字符:想要被替换的字符或字符串。替换字符:用来替换原字符的内容。g:全局替换标志,意味着在每一行中会替换所有匹配的原字符;若不加g,则只替换每行中第一个匹配的原字符。文件名:要处理的文件名称。
示例
假设文件test.txt内容如下:
plaintext
hello worldhello linux
若要把文件里所有的hello替换成hi,可使用以下命令:
bash
test.txt
若要直接修改文件内容,可以使用-i选项:
bash
test.txt
2.
awk命令
awk是一种功能强大的文本处理工具,也能实现字符替换。
基本语法
bash
文件名
gsub:全局替换函数,会在每行中替换所有匹配的原字符。原字符:要被替换的字符或字符串,需用正则表达式表示。替换字符:用来替换原字符的内容。文件名:要处理的文件名称。
示例
还是以test.txt文件为例,把所有的hello替换成hi,可使用以下命令:
bash
test.txt
若要直接修改文件内容,可以结合重定向:
bash
test.txt temp.txt temp.txt test.txt
3.
tr命令
tr(translate)命令主要用于字符转换,不过它只能进行单个字符的替换。
基本语法
bash
文件名
原字符:要被替换的单个字符或字符集。替换字符:用来替换原字符的单个字符或字符集。< 文件名:从文件中读取输入。
示例
假设文件test.txt内容为:
plaintext
abcdef
若要把文件里的a替换成A,可使用以下命令:
bash
test.txt
912tr < test.txt
若要直接修改文件内容,可以结合重定向:
bash
test.txt temp.txt temp.txt test.txt
912tr < test.txt > temp.txt && temp.txt test.txt