请问sed全匹配替换时如何排除注释行。 需要批量替换多目录底下的多文件内容,但是不需要更改注释行。
可以通过find 或 grep 定位文件绝对路径,然后通过管道传递给sed 进行替换。
sed 's/^[^#]/#&/' file.txt >output.txt
注:
s是sed中的替换命令。
第一个^表示行首位置,[^#]表示非#号,合起来就表示要匹配不以#开头的行。
后面用&来原封不动引用前面匹配到的行内容,在其前面加上#号。
sed '/\/\//b; s/\<old\>/new/g' file
或
sed '/\/\//!s/\<old\>/new/g' file
Linux中如何利用sed进行全匹配替换?
sed 's\/\\<old\\>\/new\/g' file 这个是匹配单词一样的东西 意思就是限制它的宽度 去掉左右两边之一就相当于放宽那边不限制
怎样用sed完全匹配替换关键词
回答:sed -i "s\/www\\([^2\\.]\\)\/ftp\\1\/g"
sed匹配后再替换
先过滤,然后进行替换的格式为 '\/\/s###g' \/\/表示你要找的内容 s###g表示替换 比如我要找出\/etc\/passwd中包含bash的行 并把这行中的:替换为- 写法为: sed '\/bash\/s#:#-#g' \/etc\/passwd
请问sed全匹配替换时如何排除注释行。 需要批量替换多目录底下的多文件...
sed '\/\\\/\\\/\/b; s\/\\<old\\>\/new\/g' file或sed '\/\\\/\\\/\/!s\/\\<old\\>\/new\/g' file
请教个sed匹配替换的问题
sed -rn -f a.sed test.xml 以下是我的示例,list.txt文件内容如下:复制内容到剪贴板 代码:bbb xxx yyy ccc test.xml的内容如下:复制内容到剪贴板 代码:<?xml version="1.0" encoding="UTF-8" standalone="no"?> <url> <loc>http:\/\/www.u1cat.net\/index.php?ctl=register<\/loc> ...
sed 如何实现替换 匹配的到的 整行信息?
可以参考下面的代码:使用sed的多行模式空间 sed "\/mengqingbo\/{N;s\/[^\\n]*\/langqiuxiaozi=\\"FALSE\\"\/}"或者更简单的 sed "\/mengqingbo\/{s\/.*\/langqiuxiaozi=\\"FALSE\\"\/}"Sed 主要用来自动编辑一个或多个文件、简化对文件的反复操作、编写转换程序等。
Linux中使用sed命令替换字符串小结
sed处理过的输出是直接输出到屏幕上的,要保存可以将输出重定向,或者使用参数”i”直接在文件中替换:复制代码 代码如下:sed -i 's\/原字符串\/替换字符串\/g' filename \/\/替换文件中的所有匹配项 写完晚上12点半了,困得不行,要是中间语言不连贯了出错了请见谅,欢迎指出.
sed:使用查找时如何将整行替换,而不仅仅替换匹配到的部分呢
试试看:sed "s\/^.*do.*$\/bad\/" test
sed正则表达式如何替换匹配的中间内容?
这里可以通sed的分组来完成, 在sed中通过()来进行分组,后面通过\\1 来引用第一个分组 \\2第二个...以此类推. 这里我们把\\2改为了你想要的a就可以了。# sed 's\/\\([a-zA-Z]\\)\\([0-9]\\)\\([a-zA-Z]\\)\/\\1a\\3\/g' a.txt ...
Linux命令之sed-替换字符串
---替换2到最后一行 10. sed 's\/\\x80\/|\/g' test.dat |iconv -f gbk -t utf-8 > testutf8.dat ---把test.dat中的欧元符号替换成竖线,再将文件gbk格式转成utf8 -i选项是直接在文件中替换,不在终端输出;-r选项是所给的path中的目录递归查找;-l选项是输出所有匹配到oldstring...
斐翁伊正: sed '/\/\//b; s/\<old\>/new/g' file 或 sed '/\/\//!s/\<old\>/new/g' file
七星区18763745655: 关于sed去掉注释 - ?
斐翁伊正: root@ubuntu:~# cat 1#!/bin/sh PRE1=udp --dport 53 -j REDIRECT --to-ports 5556 PRE2=tcp --dport 53 -j DNAT --to-destination $DNS:53 #iptables -t nat -I PREROUTING -p $PRE1 #iptables -t nat -I PREROUTING -p $PRE2 root@ubuntu:~# cat 1|...
七星区18763745655: 请问在LINUX中 如何用sed将整行替换成给定字符串 - ?
斐翁伊正: sed -e 's/^.*$/string/' filename 其中string是你要替换的字符串 以上命令是把所有行都替换成某个字符串,如果你要只替换某一行,可以在前面加上行号:sed -e '3s/.*$/string/' ......
七星区18763745655: shell编程: sed命令给未注释行添加注释: 如: #abc dvfd #hre 只给第二行行首加# - ?
斐翁伊正: sed 's/^[^#]/#&/' file.txt >output.txt 注:s是sed中的替换命令.第一个^表示行首位置,[^#]表示非#号,合起来就表示要匹配不以#开头的行.后面用&来原封不动引用前面匹配到的行内容,在其前面加上#号.
七星区18763745655: Sed 删除匹配行,匹配的字符用Shell变量替换,且变量里含有斜杠“/”时,无法删除?
斐翁伊正: “修改语法,用#代替”,这个只能用在sed的s替换命令中,如:s/A/B/可以写为s#A#B#但直接正则匹配 /正则/ 是不可以这样用#替代的. 这里提供两个方法供参考: 1)先用s命令将此要删除的路径替换为一个文件中不可能出现的唯一字符串...
七星区18763745655: sed命令替换指定字符串后面内容 - ?
斐翁伊正: sed -r 's/(ATTR\{address\}==")[^"]*/\1ABC/' A结果得到: SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="ABC", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"
七星区18763745655: linux命令 sed 请问有哪位大大知道这个sed 命令是什么意思吗? sed 's/\//\\\//g' - ?
斐翁伊正: 截取或修改字符串,打印到屏幕上. 使用方法:sed 参数 '动作' 动作对象 如果用-i参数将修改文档的内容,你的sed 's/\//\\\//g'这个我举一个类似的再分析你的. sed 's/old/new/g' *** 这个就是把***文档里面的old这个词换成new这个词. 你的sed ...
七星区18763745655: 请问怎么去掉linux下gvim编辑器中的注释?谢谢 - ?
斐翁伊正: 是要取消文件中以#开头的行么 sed -i '/^#/d' file vi或vim的话:g/pattern/d 如:g/^#/d
七星区18763745655: linux 的sed命令解释 sed ':t;N;s/\n/,/;b t' 将换行符换成逗号 - ?
斐翁伊正: :t 定义label "t" b t 转到label "t" 继续执行 N 先读入一行到sed的模板空间,加个换行符(\n),再向sed模板空间追加下一行(之后sed 对模板空间中的内容执行s/\n/,/替换,并显示替换后的内容)
七星区18763745655: 如何批量删除mysql中的注释 - ?
斐翁伊正: $ cat create_table.sql create table test1( field_name int comment '字段的注释')comment='表的注释';$ sed "s/comment.\'.*\'//" create_table.sql create table test1( field_name int );