Linux centos7 替换命令

与查看命令cat、tac、head、tail、more、less相当多一样,替换命令也比较多。一是这些操作比较频繁,二是命令方便易用,能解决问题。

本文将从几方面讨论替换命令。

一、文件名替换

在linux中对文件的后缀不敏感,有无后缀不影响读取与各项处量。但为了他人快速识别文件类型或所含代码,一般会加上一个识别性后缀,如文本文件加.txt,c语言文件加.c等等。

当我们需要对文件名或后缀进行调整时,一般会用到替换命令。处理文件名的替换命令比较多,常用的有mv、rename、sed、awk等。具体使用与介绍,可以看本人撰写的几篇小文《linux centos7中批量修改文件名》、《for循环批量处理文件名》和《awk批量修改文件名》。

二、变量替换

一定条件下,执行命令或脚本时,对${变量名}用变量值进行替换的过程。

一定条件,是指并不是所有${变量名} 都需要替换,强引用时,用单引号括起来的${变量名}就是本来字符意思,不需要变量替换。

        name=zhang3

        echo   “${name}”    # 变量替换

        echo   ‘${name}’    # 变量不替换

三、变量子串替换

变量名有时比较长、不方便使用,可以通过截取、删除和替换等操作,把变量名更改,更改后的变量名称为变量子串。

变量名替换,名称变了,但变量值不变。原变量名对应的值与变量子串的值一样,仍保持不变。

变量子串

格式:${变量}

主要的作用:变量子串的效率要比相应的命令执行的效率高

变量的长度 ${#变量}

变量子串替换

使用/代替第一个指定匹配的字符并替换

使用//代替所有匹配的指定字符串

四、字符串替换

各种高级语言都有替换命令,像python有专门的改变大小写命令、删除命令(一种特殊替换)。

Linux操作系统提供了强大的替换命令,可以用来在文本文件中查找并替换指定的字符串。这些命令可以帮助用户快速、高效地修改文件内容,提高工作效率。

1.小写改大写

a.tr

tr命令主要用于字符替换,最常用的是把多个空格转为单一空格

案例 cat –n abc.txt >ab.txt

行号与行内容之间是制表符分隔。没有用tr命令处理。

        tr A-Z a-z   #将单词中的大写字母转化为小写字母

可以用[:upper:] [:lower:] 代替 A-Z a-z来达到相同的效果

b.awk

awk 命令用 toupper 和 tolower 这两个选项完成大小写转换。下面用小案例展示一下

如果你需要把整个文档内容转换成大写,你可以用如下命令以大写的形式输出文件abc.txt的内容至屏幕上:

        awk  '{print toupper($0)}’  abc.txt

c.sed

sed 命令同样能够很好完成大小写转换的工作。

        echo  "We are study OS.so case " | sed 's/[a-z]/\U&/g'  > abc

在sed替换中,第二个//之间的&,代表第一个//之间的字符串;\U表示转为大写

要想完成相反的转换,只需把上面那条命令中的 U 换成 L 、[a-z] 换成 [A-Z] 即可。

2.大写改小写

与小写改为大写相同,三个命令操作方法不再展示。

感兴趣的可以都试一下。重点是大小写的表示方法记住,并按要求变化一下。

3.首字母大写

在python中,有专用函数capital(),可以改变首字母大写。

在linux中,如果只让文本中各个单词的首字母大写,可以用sed命令完成:

        echo “windows \& linux” | sed -e "s/\b\(.\)/\u\1/g"

上面这一条命令可以只让首字母大写而其他字母不变。

4.字符串一般性替换

从前面的大小写转换,可以看到sed命令和awk命令是替换操作的主要手段。

在对文件中的任意字符串替换中,也发挥着重要作用。

sed命令

sed命令对文件中任意字符串进行替换操作的基本语法如下:

        sed  's/原字符串/新字符串/g' 文件名

其中,s表示替换操作,/原字符串/新字符串/用来指定要替换的原字符串和新字符串,g表示全局替换,即替换所有匹配到的字符串。

如果仅用s///格式,而没有g ,将替换每行首次出现的字符串。

案例:替换文件中的首次出现的"test"替换为"demo",可以使用以下命令:

        sed   's/test/demo/'  abc.txt

案例:将文件中的所有"test"替换为"demo",可以使用以下命令:

        sed 's/ test/demo /g'  abc.txt

awk命令

awk命令对文件中任意字符串进行替换的基本语法如下:

awk  '{gsub(/原字符串/, "新字符串"); print}'  文件名

其中,gsub函数用来替换字符串,/原字符串/用来指定要替换的原字符串,"新字符串"表示新字符串。

        awk  '{sub(/原字符串/, "新字符串"); print}'  文件名

sub仅替换首次出现的字符串

案例:替换文件中的首次出现的"test"替换为"demo",可以使用以下命令:

        awk  '{sub(/test/, "demo"); print}'  abc.txt

案例:将文件中的所有"test"替换为"demo",可以使用以下命令:

        awk  '{gsub(/test/, "demo"); print}'  abc.txt

grep命令

grep命令是一个强大的文本搜索工具,可以用来查找包含指定字符串的行。然后结合sed命令来实现替换字符串操作。

find命令

find命令可以用来查找文件,结合xargs命令可以对查找出的所有文件进行字符串替换。这时仍然需要sed命令来替换字符串。

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

qq_36142959

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值