今天在修改rpm打包的spec配置文件时,遇到一个问题就是:需要将100个左右源代码中的spec配置文件中的Release一行中的发布版本号使用宏变量%{_release}进行替换。 ...Linux下批量替换多个文件中的字符串的简单方法。 用sed命令可以批量替换多个文件中的字符串。...sed -i "s/原字符串/新字符串/g" `grep 原字符串 -rl 所在目录` 例如:我要把mahuinan替换为huinanma,执行命令:sed -i "s/mahuinan/huinanma...大小多少 -rl /usr/aa` sed -i "s/大小多少/日月水火/g" `grep 大小多少 -rl ./` 参考了这两篇文章: 1、Linux批量替换多个文件中字符串 Linux批量替换多个文件中字符串...2、Linux shell 批量替换多个文件中字符串 Linux shell 批量替换多个文件中字符串 接 3、SED与AWK学习笔记 SED与AWK学习笔记
将当前目录下所有文件中的tmp替换成rumenz sed > sed -i 's/tmp/rumenz/g' * 替换前备份 > sed -i '.bak' 's/tmp/rumenz/g' * find...> find ./ -type f -exec sed -i 's/tmp/rumenz/g' {} \; 不区分大小写 > find ./ -type f -exec sed -i 's/tmp/...rumenz/gI' {} \; grep sed > grep -rl tmp ./ | xargs sed -i 's/tmp/rumenz/g'
当处理文本时,sed 将当前处理的行存储在临时缓冲区中,称为“模式空间”,然后 sed 命令对缓冲区中的内容进行处理,完成后将缓冲区内容输出到标准输出,接着处理以下行,直到文件尾部。...函数 sed 命令可以使用的函数 函数 功能 a 新增字符串到下一行 c 取代 n1,n2 之间的行 d 删除 n1,n2 之间的行 i 插入字符串到上一行 p 打印指定的列 s 替换指定字符串为另一个指定字符串...行的替换和显示 下面展示了将 2 到 5 行替换为 ’No 2-5 line’ nl /etc/passwd | sed '2,5c No 2-5 line' 下面展示了只显示文件中 5-7 行的方法...sed ’s/要被取代的字串/新的字串/g’ 这个命令将字符串替换成了另一个指定字符串。 8. 多点编辑 上面的命令先执行了查找,后执行了替换命令,名执行了打印命令 p。...nl /etc/passwd | sed -e '3,$d' -e 's/bash/blueshell/' -e 参数指示了多点编辑,即先删除了第 3 行到文件末尾,然后将剩余行的 bash 替换为
例子1: sed –n ‘4s/hello/A/’ message 说明:将第4行中hello字符串替换为A,其它行如果有hello也不会被替换。...例子2: sed –n ‘2,4s/hello/A/’ message 说明:将第2-4行中hello字符串替换为A,其它行如果有hello也不会被替换。...3、子命令c 子命令c是表示把指定的行内容替换为自己需要的行内容。 例子1: sed ‘c A’ message 说明:将message文件中所有的行内容都分别替换为A行内容。...例子2: sed ‘1,2c A’ message 说明:将message文件中1-2行的内容替换为A,注意这里说的是将1-2行所有的内容只替换为一个A内容,也就是1-2行内容编程了一行,定址如果连续就是这种情况...例子3: sed ‘1,2c A\nA’ message 说明:将message中1-2行内容分别替换为了A,需要在替换内容上手动加换行\n,这样当然也可以将一行内容替换为多行内容。
默认不会直接修改源文件数据,而是会将数据复制到缓冲区中,修改也仅限于缓冲区中的数据 3. sed 与 vi 的区别 vi 采用的是交互式文本编辑模式,你可以用键盘命令来交互性地插入、删除或替换数据中的文本...] sed ‘s/old/new/’ test 匹配每一行的第一个old替换为new sed 编辑器只替换每行中第 2 次出现的匹配模式 root@ubuntu-admin-a1:/home/sedTest...test [每个字符进行映射替换] 转换命令会对 inchars 和 outchars 值进行一对一的映射,即 inchars 中的第一个字符会被转换为 outchars 中的第一个字符, 第二个字符会被转换成...反选,打印没有匹配到 hani 的行 sed -n ‘s/old/new/gp’ test 只打印匹配替换的行 6.7 sed w 将所选的行写入文件 w 命令用来将文本中指定行的内容写入文件中 格式如下...,,,:/home/linuxtechi:/bin/bash root@Linux-world:~# Bash脚本将美元($)符号视作特殊字符,用于指定一行或者一个单词的结尾。
在使用 sed 命令进行替换操作时需要用到 s(字符串替换)、c(整行/整块替换)、y(字符转换)命令选项,常见的用法如下所示。...sed 's/the/THE/' test.txt //将每行中的第一个the 替换为 THE sed 's/l/L/2' test.txt //将每行中的第 2 个 l 替换为 L sed 's/the.../THE/g' test.txt //将文件中的所有the 替换为 THE sed 's/o//g' test.txt //将文件中的所有o 删除(替换为空串) sed 's/^/#/' test.txt...'3,5s/the/THE/g' test.txt //将第 3~5 行中的所有 the 替换为 THE sed '/the/s/o/O/g' test.txt //将包含the 的所有行中的 o 都替换为...'s/1324/aaaa/' a.txt > b.txt 首先sed是有一个默认输出的,也就是将所有文件内容都输出,加上命令行中的替换,那么输出结果就是下面这样
在处理文本文件时,通常需要在一个或多个文件中查找和替换文本字符串。 sed 是一个流编辑器。 它可以对文件和输入流(如管道)执行基本的文本操作。...让我看一些示例,说明如何使用 sed 命令搜索文件中的文本,并使用其中一些最常用的选项和标志替换文件中的文本。...例如,搜索所有的3位数字,并将它们替换为您将使用的字符串数字: sed -i 's/\b[0-9]\{3\}\b/number/g' file.txt number Foo foo foo foo /...: ls file.txt file.txt.bak 递归查找和替换 有时,您希望递归地搜索目录中包含字符串的文件,并替换所有文件中的字符串。...这可以通过使用 find 或 grep 等命令递归地查找目录中的文件并将文件名管道化为 sed 来实现。 下面的命令将递归搜索当前工作目录文件夹中的文件,并将文件名传递给 sed。 find .
sed替换标记 g # 表示行内全面替换。 p # 表示打印行。 w # 表示把行写入一个文件。 x # 表示互换模板块中的文本和缓冲区中的文本。...y # 表示把一个字符翻译为另外的字符(但是不用于正则表达式) \1 # 子串匹配标记 & # 已匹配字符串标记 sed元字符集 ^ # 匹配行开始,如:/^sed/匹配所有以sed开头的行。...sed用法实例 替换操作:s命令 替换文本中的字符串: sed 's/book/books/' file -n选项 和 p命令 一起使用表示只打印那些发生替换的行: sed -n ‘s/test/TEST.../p’ file 直接编辑文件 选项-i ,会匹配file文件中每一行的所有book替换为books: sed -i 's/book/books/g' file 全面替换标记g 使用后缀 /g 标记会替换每一行中的所有匹配...命令的执行顺序对结果有影响。如果两个命令都是替换命令,那么第一个替换命令将影响第二个替换命令的结果。
能够根据命令来处理数据流中的数据,这些命令要么从命令行中输入,要么存储在一个命令文本文件中。...根据所提供的编辑器命令匹配数据。 按照命令修改流中的数据。 将新的数据输出到 STDOUT。...new 将行内第一个old替换为new 修改 s/old/new/ g 将行内全部的old替换为new 修改 s/old/new/2 将行内第2个开始的old替换为new 修改 s/old/new/ig...将行内olg全部替换为new,忽略大小写 例子 删除 /sbin/nologin 登入的用户 > sed -i '\/sbin\/nologin/d' passwd > cat passwd root...root:x:0:0:root:/root:/bin/bash Bash Copy 将 passwd 文件中 /sbin/nologin 替换 /SBIN/NOLOGIN > sed -i 's/\
-e :直接在命令列模式上进行 sed 的动作编辑; -f :直接将 sed 的动作写在一个文件内, -f filename 则可以运行 filename 内的 sed 动作; -r :sed 的动作支持的是延伸型正规表示法的语法...此例中,对第1到第20行进行处理,you被保存为标签1,如果发现youself,则替换为your。 & 保存查找串以便在替换串中引用 s/my/**&**/ 符号&代表查找串。...替换s命令 $ sed 's/test/mytest/g' example 在整行范围内把test替换为mytest。如果没有g标记,则只有每行第一个匹配的test被替换成mytest。...如例子所示,第一条命令删除1至5行,第二条命令用check替换test。命令的执行顺序对结果有影响。如果两个命令都是替换命令,那么第一个替换命令将影响第二个替换命令的结果。...从文件读入r命令 $ sed '/test/r file' example file里的内容被读进来,显示在与test匹配的行后面,如果匹配多行,则file的内容将显示在所有匹配行的下面。
能够根据命令来处理数据流中的数据,这些命令要么从命令行中输入,要么存储在一个命令文本文件中。...根据所提供的编辑器命令匹配数据。 按照命令修改流中的数据。 将新的数据输出到 STDOUT。...将行内第一个old替换为new 修改 s/old/new/ g 将行内全部的old替换为new 修改 s/old/new/2 将行内第2个开始的old替换为new 修改 s/old/new/ig 将行内...:/root:/bin/bash 将 passwd 文件中 /sbin/nologin 替换 /SBIN/NOLOGIN > sed -i 's/\/sbin\/nologin/\/SBIN\/NOLOGIN...w 将匹配行写入指定文件 passwd 文件匹配到 /bin/bash 的行后面追加 “Insert Line For /bin/bash Behind” > sed -i '/\/bin\/bash
history文件的,而是存放在内部的buffer中,等bash退出时会一并写入。...不记录命令,Vim会将命令历史记录,保存在viminfo文件中。...command 第三种方式: 通过修改配置文件/etc/profile,使系统不再保存命令记录。默认情况下历史命令将保存1000条,可以将该值改为0,然后保存并退出,最后重启系统使得配置文件生效。...# 删除所有匹配到字符串的行,比如以当天日期或者自己的登录ip sed -i '/自己的ip/'d test.txt sed -i '/192.168.1.2/'d test.txt # 全局替换登录.../bin/bash –i 清除Web入侵痕迹 直接替换日志ip地址 sed -i 's/192.168.166.85/192.168.1.1/g' apache/logs/access.log 常见日志地址
sed实例 以行为单位的新增/删除 以行为单位的替换与显示 数据的搜寻并显示/删除 数据的搜寻并执行命令 数据的搜寻并替换 多点编辑 直接修改文件内容 cut -(d f) 2.编写脚本/root/bin...】三个中的任何一个,就可以将光标移动到最底下那一行。在这个模式中, 可以提供查找、读取、存盘、替换字符、离开vi、显示行号等的动作则是在此模式中完成的!...ifconfig的用法 ifconfig ens33 |grep -o -o : 表示的只输出符合re规则的字符串 egrep=grep -E 用于显示文件中符合条件的字符串 一般使用: ifconfig...搜索/etc/passwd,找到root对应的行,执行后面花括号中的一组命令,每个命令之间用分号分隔,这里把bash替换为blueshell,再输出这行: nl /etc/passwd | sed...-e表示多点编辑,第一个编辑命令删除/etc/passwd第三行到末尾的数据,第二条命令搜索bash替换为blueshell。
如果有一个字符串要确保全部是大写的,只需通过 tr命令替换: [root@localhost ~]# echo "Hello World" | tr [:lower:] [:upper:] HELLO...WORLD 下面是在 中使用此命令的示例,需要确保添加到文件中的所有文本都是大写,以保持一致性: #!...下面实例内容在文本里面写入,将输入的小写内容转换为大写: #!...,将输入的大写内容转换为小写: #!...,你可以选择一个能记住的命令使用。
,可以执行多条sed命令 -f 或--file=:#以选项中指定的script文件来处理输入的文本文件 -i :#用于sed修改的结果直接修改读取数据的文件,而不有...\/local\/bin/g' WeiyiGeek.自定义定界符 修改写入i命令实例: -i选项可以直接修改源文件中替换删除的字符串,也能进行备份将要修改的文件; #采用-i 选项 【.bak文件后缀...#示例1.命令的执行顺序对结果有影响,如果两个命令都是替换命令,那么第一个替换命令将影响第二个替换命令的结果。...# 将text.txt第三行中得60换成90; #直接编辑文件-i选项,会匹配file文件中每一行的book替换为books(直接写入到源文件中) $ sed -i 's/book/books/g'...从文件读入:r命令 描述:file里的内容被读进来,显示在与test匹配的行后面,如果匹配多行,则file的内容将显示在所有匹配行的下面 #示例1.读取file文件中的到并且插入到查找到test字符串的后面
使用 s 命令时,sed 编辑器会在一行一行地读取文件 file,并在每行查找文本 srcStr,如果找到了,则将该处的 srcStr 替换为 dstStr。.../ 字符为界定符,用于分隔字符串(sed 编辑器允许使用其他字符作为替换命令中的字符串分隔符): sed 's!/bin/bash!/BIN/BASH!' /etc/passwd # 使用 !...作为字符串分隔符 默认情况下,替换命令只会替换掉目标文本在每行中第一次出现的地方。若想要替换掉每行中所有匹配的地方,可以使用替换标记 g。替换标记放在编辑命令的末尾。...etc/passwd 文件中每行的第 2 个 root 替换为 ROOT; 2)g :替换所有匹配到的文本: sed 's/root/ROOT/g' /etc/passwd 这行命令将 /etc/passwd...文件中的 root,全部替换为 ROOT; 3)p :打印与替换命令中指定模式(srcStr)相匹配的行: sed 's/root/ROOT/p' /etc/passwd 执行这命令,会在 STDOUT
bash_history #删除历史文件中的内容 HISTZISE=0 #通过设置历史命令条数来清除所有历史记录 2、在隐蔽的位置执行命令 使用vim打开文件执行命令 :set...filename echo > filename 针对性删除日志文件: 删除当天日志 sed -i '/当天日期/'d filename 篡改日志 将所有170.170.64.17ip替换为127.0.0.1...sed -i 's/170.170.64.17/127.0.0.1/g' 一键清除的bash脚本 #!.../bash_history history -c 4、文件删除 (1)shred命令 实现安全的从硬盘上擦除数据,默认覆盖3次,通过 -n指定数据覆盖次数 shred -f -u -z -v -n 8...1.txt (2)dd命令 可用于安全地清除硬盘或者分区的内容。
处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,直到文件末尾。...-e ,--expression=:将脚本文件作为sed的命令来执行; -f ,--file=:直接将sed的动作写在一个文件内...bin:/bin:/bin/sh …(下面忽略)… 如果想删除匹配的字符串,使用如下命令: [b3335@MIC ~]$ nl /etc/passwd | sed 's/root//g' (3)数据的查找并替换.../;p;q}' 1 root:x:0:0:root:/root:/bin/blueshell 4.6多点编辑 一条sed命令,删除/etc/passwd第三行到末尾的数据,并把bash替换为blueshell...:x:1:1:daemon:/usr/sbin:/bin/sh -e表示多点编辑,第一个编辑命令删除/etc/passwd第三行到末尾的数据,第二条命令搜索bash替换为blueshell。
处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(Pattern Space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕,接着处理下一行,直到文件末尾。...bin:/bin:/bin/sh …(下面忽略)… 如果想删除匹配的字符串,使用如下命令: [b3335@MIC ~]$ nl /etc/passwd | sed 's/root//g' (3)数据的查找并替换...他有点像这样: sed 's/被取代的字串/新的字串/g' (4)数据的搜寻并执行命令 搜索/etc/passwd,找到root对应的行,执行后面花括号中的一组命令,每个命令之间用分号分隔,这里把bash.../;p;q}' 1 root:x:0:0:root:/root:/bin/blueshell 4.6多点编辑 一条sed命令,删除/etc/passwd第三行到末尾的数据,并把bash替换为blueshell...:x:1:1:daemon:/usr/sbin:/bin/sh -e表示多点编辑,第一个编辑命令删除/etc/passwd第三行到末尾的数据,第二条命令搜索bash替换为blueshell。
~ B 判断字符串A中是否不包含能匹配B表达式的子字符串 动作(Action): 格式化输出 流程控制语句 sed命令 sed主要是用来将数据进行选取、替换、删除、新增的命令,我们看看命令的语法...-f 脚本文件名 :从sed脚本中读入sed操作,和awk命令的-f非常类似, -r 在sed的修改结果直接修改读取数据的文件,而不是由屏幕输出 动作 : a : 追加,在当前行后添加一行或多行...格式为“行范围 s/ 旧字串/新字串/g“ (和vim中的替换格式类似) 对sed命令要注意,sed所做的修改并不会直接改变文件的内容(如果是用管道符接收的命令的输出,这种情况连文件都没有),而是把修改结果只是显示到屏幕上...的值替换为空。...如果能替换为空,证明num1的值为数字 #如果不能替换为空,证明num1的值为非数字。
领取专属 10元无门槛券
手把手带您无忧上云