Linux中使用sed命令替换字符串小结

哎呀,说到Sed,我想告诉你我当时陷入的陷阱。
那是2 008 年我在上海的时候,当时公司的一个运维朋友让我创建一个脚本来批量更改变量名。
当时我刚刚学习 Linux,觉得 Sed 真的很棒。

看,我了解基本语法 s/原始字符串/替换字符串/。
我只是想,我不能只使用 s/oldname/newname/ 吗?去?结果呢?好家伙,有很多地方是无法替代的。
我一想,哦!原来 / 需要转义,需要使用 sed 's/oldname\\/newname\\/g'。
那天我差点因为那个转义字符而摔坏了键盘。

此外,我陷入了自定义分隔符的困境。
曾经有一个配置文件,变量值都是/。
我改了又改,发现使用s?oldname?newname?g时,分隔符可以随便用。
这样不是可以省去一些麻烦吗?那天我挣扎了很久,终于想通了,我?一行代码处理十个文件的分隔符,太酷了!
我对全局替换了解更多。
我记得有一次改变日志格式没有添加g。
对于日志行中的同一个单词,我只更改了第一个,而忽略了其余的。
通过添加 g,可以立即更改一行上的所有内容。
这个技巧我用过无数次了,省事!
我也经常在行首和行尾使用操作。
当我更改 Web 服务器配置时,我在所有 URL 之前添加了 /,因此 s/^/\/g,并在所有文件路径之后添加了 /,因此 s/$/\/g。
这两个招数我已经用了一百多次了,完全可靠。

我还使用了特定范围的线的替换。
例如,有一个脚本仅更改变量定义的前三行。
我使用 1 .3 s/oldname/newname/g 这非常简单。
另外,要更改最后一个注释行,请使用 $s/comment content/new comments/g。
我在更改系统日志格式时使用了这个。

我也尝试了几种替换规则。
有一次,我必须在所有行的开头添加时间戳,并在所有行的末尾添加版本号。
我使用 sed 's/^/timestamp/g;s/$/version number/g' 这是非常有效的。

当时我对保存替换结果感到困惑。
起初我只是导出来看看,但后来我意识到我需要保存它。
要么重定向到文件,要么使用-i参数直接修改文件。
印象最深的是,有一次修改完脚本后,发现直接保存了,但是系统却挂了。
那天我差点被老板解雇了。
幸运的是我后来发现这是一个 sed 问题并且能够快速修复它。

Sed 是一个如果我谈论太多就会让我哭泣的东西。
但一旦习惯了,它就真的派上用场了。
您已经记住了有关转义字符、自定义分隔符、全局替换、行开始和结束、指定行范围、多次替换和保存结果的要点。
一旦掌握了这些要点,你就会从根本上理解 sed。

linux系统三剑客之sed命令增删改查文本内容

sed 是一个 Linux 文本处理工具。

逐行处理文本。

使用正则表达式。

默认不修改原文件。

命令行选项:-e 脚本、-i 修改文件、-n 安静模式、-f 脚本文件。

操作命令:s替换、d删除、a插入、i之前插入、c替换整行、y字符转换、p打印、w写入、r读取、q退出。

寻址方式:行号、行间隔、模式匹配。

示例:sed -e 's/test/Trial/g' -n 's/test/Trial/p' data.txt。

ifconfig|sed '/demo/s/bash/csh/' 提取特定模式。

元字符和辅助运算符提供复杂的处理能力。

掌握sed,提高文本操作效率。

Linux系统中tr命令删除和替换文本字符的基本用法

上周我的朋友在 Linux 系统中使用 tr 命令获得了很多乐趣。
首先进行简单的替换,例如将文件中的“a”替换为“x”,将“b”替换为“y”,将“c”替换为“z”。
使用的命令是cat file | tr“abc”“xyz”> 新文件。
他告诉我,到 2 02 3 年,案件变更也同样容易完成。
例如小写转大写的命令是cat file | tr "[a-z]" "[A-Z]" > new_file.反之,大写转小写的命令是cat file | tr "[A-Z]" "[a-z]" > new_file.
他还说字符范围替换很有趣。
例如,要将数字 0 到 9 替换为字母 a 到 j,命令为 cat file | tr "[0-9 ]" "[a-j]" > new_file.
然后他提到删除字符。
例如,删除字符“Snail”的命令是cat file | tr -d“蜗牛”> 新文件。
删除换行符和制表符的命令是 cat file | tr -d“nt”> 新文件。

我想到了别的事。
删除重复字符也很实用。
例如,cat 文件 |可以执行 tr -s "[a-zA-Z]" > new_file.它还演示了一种压缩空行的方法。
猫文件| tr -s " > new_file 可以将许多空行压缩为一个。

一次,也将路径变量中的冒号替换为 tr。
命令 $PATH | tr -s ": ""。

最后他说字符部分替换也很有用,比如把括号{}替换成括号()。
命令 tr '{}' '()' textfile > newfile。
综上所述,tr命令实际上是一个字符替换,它是一个功能强大且简单的文本编辑工具,可以帮助我们处理删除。
但有时命令需要根据具体情况进行调整。

linux系统三剑客之sed命令增删改查文本内容

sed是一个文本处理工具。
查世界用s,运动正则歌机。
如果不想替换,就用p命令即可。

例如sed -n file '/pattern/p' 直接打印包含pattern的行。
行号、区间运动用,找移动很微力。

添加内容很容易。
命令,在相应行后添加新行。
i 安全,电影行表加加新行。

要删除一行,直接使用d。
所有匹配的行都将被删除。

使用 s 更改内容。
sed 文件's/old/new/g',用新的替换所有旧的。
g 代表全局。
想整行水,c安全枞定。

记住,sed默认不会转换文件并输出到屏幕上。
想改文件,得用-i手机。

一定要懂正则表达式,否则很容易犯语法错误。
如何处理大文件?